媲美Pandas?Python的Datatable包怎么用?

极限学习机(ELM)快速训练与泛化性能解析:从原理到实战 在机器学习领域,前馈神经网络是解决复杂非线性问题的核心架构之一。其传统训练方法,如反向传播,依赖于迭代优化,计算成本高且对超参数敏感。极限学习机(ELM)作为一种创新的单隐层前馈神经网络,其原理在于随机初始化并固定输入层至隐藏层的权重,将训练过程转化为一个线性最小二乘问题,从而实现了极致的训练速度。这种机制的技术价值在于,它显著降低了模型开发的计算门槛和时间成本,特别适用于需要快速原型验证、在线学习或资源受限的边缘计算场景。通过引入正则化技术并合理调整隐藏层神经元数量,ELM在保证“快”的同时,也能获得优异 阅读详情

 

 

 

 

Python资源共享群:484031800

【导读】 工具包 datatable 的功能特征与 Pandas 非常类似,但更侧重于速度以及对大数据的支持。此外,datatable 还致力于实现更好的用户体验,提供有用的错误提示消息和强大的 API 功能。通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。

前言

data.table 是 R 中一个非常通用和高性能的包,使用简单、方便而且速度快,在 R 语言社区非常受欢迎,每个月的下载量超过 40 万,有近 650 个 CRAN 和 Bioconductor 软件包使用它。如果你是 R 的使用者,可能已经使用过 data.table 包。

而对于 Python 用户,同样存在一个名为 datatable 包,专注于大数据支持、高性能内存/内存不足的数据集以及多线程算法等问题。在某种程度上,datatable 可以被称为是 Python 中的 data.table。

Datatable初教程

为了能够更准确地构建模型,现在机器学习应用通常要处理大量的数据并生成多种特征,这已成为必要的。而 Python 的 datatable 模块为解决这个问题提供了良好的支持,以可能的最大速度在单节点机器上进行大数据操作 (最多100GB)。datatable 包的开发由 H2O.ai 赞助,它的第一个用户是 Driverless.ai。

 

 

 

 

 

接下来,我们就开始初体验一下 datatable 的简单使用。

安装

在 MacOS 系统上,datatable 包可以通过 pip 命令安装,如下图所示:  

pip install datatable

在 Linux 平台上,安装过程需要通过二进制分布来实现,如下所示:

# If you have Python 3.5

pip install https://s3.amazonaws.com/h2o-release/datatable/stable/datatable-0.8.0/datatable-0.8.0-cp35-cp35m-linux_x86_64.whl

# If you have Python 3.6

pip install https://s3.amazonaws.com/h2o-release/datatable/stable/datatable-0.8.0/datatable-0.8.0-cp36-cp36m-linux_x86_64.whl

很遗憾的是,目前 datatable 包还不能在 Windows 系统上工作,但 Python 官方也在努力地增加其对 Windows 的支持。更多的信息可以查看 Build instructions 的说明。

地址:

https://datatable.readthedocs.io/en/latest/install.html  

 

 

 

 

 

数据读取

这里使用的数据集是来自 Kaggle 竞赛中的 Lending Club Loan Data 数据集, 该数据集包含2007-2015期间所有贷款人完整的贷款数据,即当前贷款状态 (当前,延迟,全额支付等) 和最新支付信息等。整个文件共包含226万行和145列数据,数据量规模非常适合演示 datatable 包的功能。  

# Importing necessary Libraries

import numpy as np

import pandas as pd

import datatable as dt

首先将数据加载到 Frame 对象中,datatable 的基本分析单位是 Frame,这与Pandas DataFrame 或 SQL table 的概念是相同的:即数据以行和列的二维数组排列展示。

  •  
  • datatable 读取

%%time

datatable_df = dt.fread("data.csv")

____________________________________________________________________

CPU times: user 30 s, sys: 3.39 s, total: 33.4 s

Wall time: 23.6 s

如上图,fread() 是一个强大又快速的函数,能够自动检测并解析文本文件中大多数的参数,所支持的文件格式包括 .zip 文件、URL 数据,Excel 文件等等。此外,datatable 解析器具有如下几大功能:

  • 能够自动检测分隔符,标题,列类型,引用规则等。
  • 能够读取多种文件的数据,包括文件,URL,shell,原始文本,档案和 glob 等。
  • 提供多线程文件读取功能,以获得最大的速度。
  • 在读取大文件时包含进度指示器。
  • 可以读取 RFC4180 兼容和不兼容的文件。

 

  •  

pandas 读取

下面,使用 Pandas 包来读取相同的一批数据,并查看程序所运行的时间。

%%time

pandas_df= pd.read_csv("data.csv")

___________________________________________________________

CPU times: user 47.5 s, sys: 12.1 s, total: 59.6 s

Wall time: 1min 4s

由上图可以看到,结果表明在读取大型数据时 datatable 包的性能明显优于 Pandas,Pandas 需要一分多钟时间来读取这些数据,而 datatable 只需要二十多秒。

帧转换 (Frame Conversion)

对于当前存在的帧,可以将其转换为一个 Numpy 或 Pandas dataframe 的形式,如下所示:  

numpy_df = datatable_df.to_numpy()

pandas_df = datatable_df.to_pandas()

下面,将 datatable 读取的数据帧转换为 Pandas dataframe 形式,并比较所需的时间,如下所示:

%%time

datatable_pandas = datatable_df.to_pandas()

___________________________________________________________________

CPU times: user 17.1 s, sys: 4 s, total: 21.1 s

Wall time: 21.4 s

看起来将文件作为一个 datatable frame 读取,然后将其转换为 Pandas dataframe比直接读取 Pandas dataframe 的方式所花费的时间更少。因此,通过 datatable 包导入大型的数据文件再将其转换为 Pandas dataframe 的做法是个不错的主意。

type(datatable_pandas)

___________________________________________________________________

pandas.core.frame.DataFrame

帧的基础属性

下面来介绍 datatable 中 frame 的一些基础属性,这与 Pandas 中 dataframe 的一些功能类似。

print(datatable_df.shape) # (nrows, ncols)

print(datatable_df.names[:5]) # top 5 column names

print(datatable_df.stypes[:5]) # column types(top 5)

______________________________________________________________

(2260668, 145)

('id', 'member_id', 'loan_amnt', 'funded_amnt', 'funded_amnt_inv')

(stype.bool8, stype.bool8, stype.int32, stype.int32, stype.float64)

也可以通过使用 head 命令来打印出输出的前 n 行数据,如下所示:

datatable_df.head(10)

 

 

 

 

 

注意:这里用颜色来指代数据的类型,其中红色表示字符串,绿色表示整型,而蓝色代表浮点型。

统计总结

在 Pandas 中,总结并计算数据的统计信息是一个非常消耗内存的过程,但这个过程在 datatable 包中是很方便的。如下所示,使用 datatable 包计算以下每列的统计信息:

datatable_df.sum() datatable_df.nunique()

datatable_df.sd() datatable_df.max()

datatable_df.mode() datatable_df.min()

datatable_df.nmodal() datatable_df.mean()

下面分别使用 datatable 和Pandas 来计算每列数据的均值,并比较二者运行时间的差异。

  •  
  • datatable 读取

%%time

datatable_df.mean()

_______________________________________________________________

CPU times: user 5.11 s, sys: 51.8 ms, total: 5.16 s

Wall time: 1.43 s

  •  
  • Pandas 读取

pandas_df.mean()

__________________________________________________________________

Throws memory error.

可以看到,使用 Pandas 计算时抛出内存错误的异常。

数据操作

和 dataframe 一样,datatable 也是柱状数据结构。在 datatable 中,所有这些操作的主要工具是方括号,其灵感来自传统的矩阵索引,但它包含更多的功能。诸如矩阵索引,C/C++,R,Pandas,Numpy 中都使用相同的 DT[i,j] 的数学表示法。下面来看看如何使用 datatable 来进行一些常见的数据处理工作。

 

 

 

 

 

▌ 选择行/列的子集

下面的代码能够从整个数据集中筛选出所有行及 funded_amnt 列:

datatable_df[:,'funded_amnt']

 

 

 

 

 

这里展示的是如何选择数据集中前5行3列的数据,如下所示:  

datatable_df[:5,:3]

 

 

 

 

 

▌ 帧排序

  • datatable 排序

在 datatable 中通过特定的列来对帧进行排序操作,如下所示:  

%%time

datatable_df.sort('funded_amnt_inv')

_________________________________________________________________

CPU times: user 534 ms, sys: 67.9 ms, total: 602 ms

Wall time: 179 ms

  • Pandas 排序

%%time

pandas_df.sort_values(by = 'funded_amnt_inv')

___________________________________________________________________

CPU times: user 8.76 s, sys: 2.87 s, total: 11.6 s

Wall time: 12.4 s

可以看到两种包在排序时间方面存在明显的差异。

▌ 删除行/列

下面展示如何删除 member_id 这一列的数据:

del datatable_df[:, 'member_id']

▌ 分组 (GroupBy)

与 Pandas 类似,datatable 同样具有分组 (GroupBy) 操作。下面来看看如何在 datatable 和 Pandas 中,通过对 grade 分组来得到 funded_amout 列的均值:

  • datatable 分组

%%time

for i in range(100):

datatable_df[:, dt.sum(dt.f.funded_amnt), dt.by(dt.f.grade)]

____________________________________________________________________

CPU times: user 6.41 s, sys: 1.34 s, total: 7.76 s

Wall time: 2.42 s

  • pandas 分组

%%time

for i in range(100):

pandas_df.groupby("grade")["funded_amnt"].sum()

____________________________________________________________________

CPU times: user 12.9 s, sys: 859 ms, total: 13.7 s

Wall time: 13.9 s

▌ . f 代表什么

在 datatable 中,f 代表 frame_proxy,它提供一种简单的方式来引用当前正在操作的帧。在上面的例子中,dt.f 只代表 dt_df。

▌ 过滤行

在 datatable 中,过滤行的语法与GroupBy的语法非常相似。下面就来展示如何过滤掉 loan_amnt 中大于 funding_amnt 的值,如下所示。  

datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"]

▌ 保存帧

在 datatable 中,同样可以通过将帧的内容写入一个 csv 文件来保存,以便日后使用。如下所示:

datatable_df.to_csv('output.csv')

有关数据操作的更多功能,可查看 datatable 包的说明文档

地址:

https://datatable.readthedocs.io/en/latest/using-datatable.html

总结

在数据科学领域,与默认的 Pandas 包相比,datatable 模块具有更快的执行速度,这是其在处理大型数据集时的一大优势所在。然而,就功能而言,目前 datatable 包所包含的功能还不如 pandas 完善。相信在不久的将来,不断完善的 datatable 能够更加强大。

【Python百日基础系列】Day34 - Dash_table前端排序、过滤、选择和分页 文章目录一、相关功能1.1 DataTable修改和转换数据视图的功能1.2 过滤的快速说明 视频讲解 一、相关功能 1.1 DataTable修改和转换数据视图的功能 按列排序 ( sort_action='native') 按列过滤 ( filter_action='native') 编辑单元格 ( editable=True) 删除行 ( row_deletable=True) 删除列 ( columns[i].deletable=True) 选择行 ( row_selectable='single 阅读详情

相关推荐

Android真机调试——ADB调试(含华为手机无法找到设备)

本文以Huawei Nova7为例。

lianqi2003的博客 7865

Python DataTable用法(一)

最近发现Python DataTable有查询csv, Excel表数据真的很好用。强烈推荐给大家。有一些甚至比Pandas都要好用一些。这篇文章记录一些查询数据的方法。其中一些小的细节,请大家自己观察结果的返回。

于涛的专栏 4190

华为云Stack扩容实战:从CMDB配置到计算节点增减容,一份避坑指南

本文详细解析华为云Stack扩容实战,从CMDB配置到计算节点增减容的全流程操作指南。通过典型场景案例和避坑建议,帮助企业高效管理计算资源扩容与减容,确保业务连续性。特别针对华为云Stack的弹性扩容能力提供专业指导,涵盖存储、网络及自动化工具链的配合使用。

weixin_30591551的博客 479

datatable,一个神奇的 Python 库!

import datatable as dt # 加载数据 data = dt.fread("data.csv") # 计算统计摘要 summary = data[:, dt.sum(dt.f.count)] print(summary)DataTable 库为 Python 数据分析提供了全面的工具集。在本指南中,介绍了其基本用法、高级操作以及在各个领域的实际应用。通过其高性能和可伸缩性,DataTable 是 Python 数据科学工具包中不可或缺的一部分。

xjt921122的博客 1519

ubuntu打实时内核补丁教程以及安装后显卡驱动问题解决方法

在ubuntu20.04上安装成功,亲测有效 目录ubuntu打实时内核补丁教程1、下载实时内核2、解压和打补丁(patch)3、安装依赖和编译安装4、修改一些文件,便于之后切换内核5、重启电脑实时内核版本下安装nvidia显卡驱动的问题1、先切换回之前的内核(非实时)版本2、重装之前内核(非实时)版本下的显卡驱动3、切换回实时内核(按照上面的步骤)4、在实时内核下安装显卡驱动 ubuntu打实时内核补丁教程 安装目标系统:ubuntu20.04 电脑配置:i9,2080ti 1、下载实时内核 打开终端,输

weixin_39275295的博客 7996

ADSP-21565的SigmaStudio图形化编程实战:从FW工程改造到音频通道打通

本文详细介绍了如何将ADSP-21569的SigmaStudio图形化编程固件工程改造,以适配ADSP-21565的纯片内SRAM内存架构。通过修改内存映射和链接文件,打通了音频输出通道,并成功利用SigmaStudio进行图形化编程,实现了从白噪声生成到音频输出的完整验证流程。

weixin_29169505的博客 381

Datatable:Python数据分析提速高手,飞一般的感觉!

Datatable是一个Python库:详细介绍大家可以去官网查看:Datatable的有点包括:高效的多线程算法内存映射磁盘上的数据集本地C++实现完全开源。

aobulaien001的博客 930

RK3588开发笔记-ISP模块参数调试

本文详细介绍了基于RK3588平台的ISP模块参数调试流程。主要内容包括:硬件准备(RK3588板卡、IMX415摄像头等)、软件环境搭建(Ubuntu系统、RKISP_Tuner工具)、IMX415摄像头基础使用验证、RKISP2.x Tuner工具的使用方法(新建/加载IQ参数文件、Sensor配置、Raw图采集)以及最终IQ文件的部署。文章重点强调了基础标定的重要性,建议开发者分场景调试并参考官方文档,通过合理配置ISP参数来优化图像质量。该调试流程适用于RK3588平台的图像采集类项目开发。

flypig has a dream! 839

媲美Pandas?告诉你Python的Datatable包到底怎么用!

前言 data.table 是 R 中一个非常通用和高性能的包,使用简单、方便而且速度快,在 R 语言社区非常受欢迎,每个月的下载量超过 40 万,有近 650 个 CRAN 和 Bioconductor 软件包使用它。如果你是 R 的使用者,可能已经使用过 data.table 包。 而对于 Python 用户,同样存在一个名为 datatable 包,专注于大数据支持、高性能内存/内存不足...

Pythoncxy的博客 1503

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)

海洋CMS admin_notify.php 接口处存在远程代码执行漏洞,经过身份验证的远程攻击者可利用该漏洞执行任意代码,写入后门文件,进而控制整个web服务器。

0xSec 2719

【100%通过率】华为OD机试真题 C++ 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

datatable使用_媲美Pandas?告诉你Python的Datatable包到底怎么用

作者 | Parul Pandey【导读】工具包 datatable 的功能特征与 Pandas 非常类似,但更侧重于速度以及对大数据的支持。此外,datatable 还致力于实现更好的用户体验,提供有用的错误提示消息和强大的 API 功能。通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。前言...

weixin_39827306的博客 338

车载以太网测试-1【TC8物理层测试基础】

车载以太网物理层是车载网络的基础,负责将数字数据转换为适合在物理介质上传输的信号,并确保数据传输的可靠性、稳定性和高效性。它在车载网络系统中扮演着至关重要的角色,直接影响着车辆内部通信的性能和效率。1. 主要物理层标准车载以太网标准由IEEE 802.3和标准名称速率线缆类型编码方式应用场景100BASE-T1100 Mbps单对非屏蔽双绞线车载摄像头、传感器1 Gbps单对屏蔽/非屏蔽双绞线自动驾驶域控制器、高清视频10BASE-T1S10 Mbps单对双绞线幅移键控(ASK)

车载网络测试工程师的博客 4393

datatable 排序_媲美Pandas?告诉你Python的Datatable包到底怎么用!

前言data.table 是 R 中一个非常通用和高性能的包,使用简单、方便而且速度快,在 R 语言社区非常受欢迎,每个月的下载量超过 40 万,有近 650 个 CRAN 和 Bioconductor 软件包使用它。如果你是 R 的使用者,可能已经使用过 data.table 包。而对于 Python 用户,同样存在一个名为 datatable 包,专注于大数据支持、高性能内存/内存不足的数据集...

weixin_39668470的博客 131

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

媲美Pandas?一文入门Python的Datatable操作

作者 |Parul Pandey译者 |linstancy责编 | Jane出品 | Python大本营(id:pythonnews)【导读】工具包 datatab...

AI科技大本营 6057

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python3 Datatable 媲美 超过 pandas

1 前言 data.table 是 R 中一个非常通用和高性能的包,使用简单、方便而且速度快,在 R 语言社区非常受欢迎,每个月的下载量超过 40 万,有近 650 个 CRAN 和 Bioconductor 软件包使用它。如果你是 R 的使用者,可能已经使用过 data.table 包。 而对于 Python 用户,同样存...

从零开始学习python --zeropython 357

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

媲美pandas的数据分析工具包Datatable

1 前言 data.table 是 R 中一个非常通用和高性能的包,使用简单、方便而且速度快,在 R 语言社区非常受欢迎,每个月的下载量超过 40 万,有近 650 个 CRAN 和 Bioconductor 软件包使用它。如果你是 R 的使用者,可能已经使用过 data.table 包。 而对于 Python 用户,同样存在一个名为 datatable 包,专注于大数据支持、高性能内存/内存不足...

yangsen99的博客 537

5个例子比较Python Pandas 和R data.table

Python和R是数据科学生态系统中的两种主要语言。它们都提供了丰富的功能选择并且能够加速和改进数据科学工作流程。 在这篇文章中,我们将比较Pandas 和data.table,这两个库是Python和R最长用的数据分析包。我们不会说那个一个更好,我们这里的重点是演示这两个库如何为数据处理提供高效和灵活的方法。 我们将介绍的示例是常见的数据分析和操作操作。因此,您可能会经常使用它们。 我们将使用Kaggle上提供的墨尔本住房数据集作为示例。我将使用谷歌Colab(Pandas )和RStudio(data.

deephub 4888

【亲测免费】 Python 数据表操作库 DataTable 使用指南

DataTable 是一个用于操作二维数据表结构的 Python 包,它类似于 pandas 或 SFrame,但特别强调速度和对大数据的支持。DataTable 旨在在单节点机器上以最大速度执行大数据(可达100GB)操作,满足现代机器学习应用的需求。该项目的初始用户是 Driverless.ai。DataTable 的目标是实现列式数据存储、原生的 C 语言实现支持所有数据类型、支持日期时间与

gitblog_00636的博客 1130

大数据处理神器datatable库安装及使用(远超pandas效率)

大数据处理神器datatable库安装及使用(远超pandas效率)

唯有热爱 可抵万难 1470

Python数据处理革命:datatable如何以10倍速碾压Pandas?

创建自定义C++函数 from datatable import generate_pyfunccode = """// 自定义距离计算函数i < n;++i) {// 注册为Python函数""" generate_pyfunc("custom_distance" , code) # 使用自定义函数 df [ : , dt . update(distance = dt . custom_distance(dt . f . x , dt . f . y)) ]

zhangkexin_z的博客 469
上一篇: Python超详细的字符串用法大全 !
下一篇: Python爬虫也能用手机进行抓包?没错!这个技巧我只告诉你!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值