首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas内存优化和数据加速读取

内存优化 一个现象是,在使用pandas进行数据处理的时候,加载大的数据或占用很大的内存和时间,甚至有时候发现文件在本地明明不大,但是用pandas以DataFrame形式加载内存中的时候会占用非常高的内存...pandas 内部将数值表示为 NumPy ndarrays,因为 pandas 表示同一类型的每个值时都使用同样的字节数,而 NumPy ndarray 可以存储值的数量,所以 pandas 可以快速准确地返回一个数值列所消耗的字节数...而feather format也是内置的一个压缩格式,在读取的时候会获得更快的加速。 3....优化效果展示 这里我将这种优化方法写成一个类,并分别提供数据的压缩优化以及读取加速的API,以方便去使用他:GitHub[1] ?...可以看出,原CSV文件占用内存为616.95MB,优化内存后的占用仅为173.9MB,且相对于原来pd.read_csv的7.7s的loading time,读入优化后的预处理数据文件能很大程度上的加速了读取

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

一行代码将Pandas加速4倍

了解一下新的库 Modin,Modin 是为了分布式 panda 的计算来加速你的数据准备而开发的。 Pandas是处理 Python 数据的首选库。...pandas 的设计初衷并不是为了有效利用这种计算能力。 Modin是一个新的库,通过在系统所有可用的 CPU 核上自动分配计算来加速 pandas。...有了它,对于任何尺寸的 pandas 数据数据集,Modin 声称能够以 CPU 内核的数量得到近乎线性的加速。 让我们看看它是如何工作的,并通过一些代码示例进行说明。...有了这样的体量,我们应该能够看到 pandas 有多慢,以及 Modin 是如何帮助我们加速的。对于测试,我使用一个 i7-8700k CPU,它有 6 个物理内核和 12 个线程。...因此,并不是所有的 pandas 功能都被完全加速了。如果你在 Modin 中尝试使用一个还没有被加速的函数,它将默认为 panda,因此不会有任何代码错误或错误。

2.9K10

全平台都能用的pandas运算加速神器

,但其仍然有着一个不容忽视的短板——难以快速处理大型数据集,这是由于pandas中的工作流往往是建立在单进程的基础上,使得其只能利用单个处理器核心来实现各种计算操作,这就使得pandas在处理百万级、千万级甚至更大数据量时...Windows系统同样进行了支持,使得我们只需要改变一行代码,就可以在所有平台上获得部分pandas功能可观的计算效率提升。...图1 2 基于modin的pandas运算加速 modin支持Windows、Linux以及Mac系统,其中Linux与Mac平台版本的modin工作时可基于并行运算框架Ray和Dask,而Windows...对于这部分功能,modin会在执行代码时检查自己是否支持,对于尚未支持的功能modin会自动切换到pandas单核后端来执行运算,但由于modin中组织数据的形式与pandas不相同,所以中间需要经历转换...: 图7 这种时候modin的运算反而会比pandas慢很多: 图8 因此我对modin持有的态度是在处理大型数据集时,部分应用场景可以用其替换pandas,即其已经完成可靠并行化改造的pandas

78520

一行代码将Pandas加速4倍

了解一下新的库 Modin,Modin 是为了分布式 panda 的计算来加速你的数据准备而开发的。 Pandas是处理 Python 数据的首选库。...pandas 的设计初衷并不是为了有效利用这种计算能力。 Modin是一个新的库,通过在系统所有可用的 CPU 核上自动分配计算来加速 pandas。...有了它,对于任何尺寸的 pandas 数据数据集,Modin 声称能够以 CPU 内核的数量得到近乎线性的加速。 让我们看看它是如何工作的,并通过一些代码示例进行说明。...有了这样的体量,我们应该能够看到 pandas 有多慢,以及 Modin 是如何帮助我们加速的。对于测试,我使用一个 i7-8700k CPU,它有 6 个物理内核和 12 个线程。...因此,并不是所有的 pandas 功能都被完全加速了。如果你在 Modin 中尝试使用一个还没有被加速的函数,它将默认为 panda,因此不会有任何代码错误或错误。

2.6K10

NumExpr:加速Numpy、Pandas数学运算新利器!

作者:Sarkar 编译:1+1=6 1 前言 Numpy 和 Pandas 可能是用于数据科学(DS)和机器学习(ML)任务的两个最广泛使用的核心Python库。...使用它,对数组进行操作的表达式可以得到加速,并且比在Python中进行相同的计算使用更少的内存。此外,它的多线程功能可以使用所有的内核——这通常会导致与NumPy相比性能的大幅提升。”...eval方法 这是一个对Python符号表达式(作为字符串)求值的Pandas方法。...默认情况下,它使用NumExpr引擎来实现显著的加速: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.eval.html...在一种情况下使用Pandas表达式,在另一种情况下使用pd.eval()方法。

2.5K21

仅需添加一行代码,即可让Pandas加速四倍 | Pandas on Ray

虽然Pandas是Python中处理数据的库,但其速度优势并不明显。 如何让Pandas更快更省心呢?...快来了解新库Modin,可以分割pandas的计算量,提高数据处理效率,一行代码即刻开启Pandas四倍速。...Pandas本就不是为了高效利用电脑计算能力而设计的。 新的Modin库,通过自动将计算分摊至系统所有可用的CPU,从而加速pandas处理效率。...如果想用Modin来运行一个尚未加速的函数,它还是会默认在Pandas中运行,来保证没有任何代码错误。 在默认设置下,Modin会使用机器上所有能用的CPU。...可以设置如下环境变量来启用这个功能: exportMODIN_OUT_OF_CORE=true 总结 上文就是使用Modin来对Pandas函数进行加速的方法。

4.8K30

Modin,只需一行代码加速你的Pandas

Modin宣称改一行代码就可以加速pandas,只需将: import pandas as pd 改为 import modin.pandas as pd 除了速度更快外,其他要用的的语法、api和...通过上面3个函数的比较,Modin在使用append、concat等方法上要比Pandas快5倍以上 对比Modin和其他加速库有何不同?...现在有很多库可以实现对Pandas加速,比如Dask、Vaex、Ray、CuDF等,Modin和这些库对比有什么样的优势呢?...「Modin Vs Vaex」 Modin可以说是Pandas加速版本,几乎所有功能通用。 Vaex的核心在于惰性加载,类似spark,但它有独立的一套语法,使用起来和Pandas差异很大。...如果你已经写好基于pandas的脚本,只是想加速运行代码,那么Modin是最佳选择。如果你只是想简单统计或可视化大数据集,可以考虑Vaex。

2K30

使用cuDF在GPU加速Pandas

公众号在此之前的一篇文章专门介绍了一些方法,请点击查看: 高逼格使用Pandas加速代码,向for循环说拜拜! 尽管如此,即使加速Pandas仍然只能在CPU上运行。...向GPU的转移允许大规模的加速,因为GPU比CPU拥有更多的内核。 cuDF的API是Pandas的一面镜子,在大多数情况下可以直接替代Pandas。...那么,你所需做的是把你的Pandas DataFrame转换成cuDF。cuDF支持Pandas大多数常见的DataFrame操作,因此无需太多学习成本你就可以加速许多常规的Pandas代码。...这里的合并是一个非常大的操作,因为Pandas将不得不寻找并匹配公共值,对于一个有1亿行的数据集来说,这是一个非常耗时的操作!GPU加速将使这变得容易,因为我们有更多的并行进程可以一起工作。...14倍的加速! 快去试试吧! —End—

8.1K10

高逼格使用Pandas加速代码,向for循环说拜拜!

Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以,在使用Pandas时,你应该考虑高度可并行化的矩阵运算。...本文将教你如何使用Pandas设计使用的方式,并根据矩阵运算进行思考。...使用.iterrows() 我们可以做的最简单但非常有价值的加速是使用Pandas的内置 .iterrows() 函数。 在上一节中编写for循环时,我们使用了 range() 函数。...Pandas的 .iterrows() 函数在内部实现了一个生成器函数,该函数将在每次迭代中生成一行Dataframe。...类似地,以这种方式设计的许多库,包括Pandas,都将具有方便的内置函数,可以执行你正在寻找的精确计算,但速度更快。

5.3K21

12 种高效 Numpy 和 Pandas 函数为你加速分析

我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算;Pandas 也是 Python 环境下的数据操作和分析软件包,以及强大的数据分析库。...在本文中,数据和分析工程师 Kunal Dhariwal 为我们介绍了 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷。...接下来看一看 Pandas 数据分析库的 6 种函数。...Pandas 数据统计包的 6 种高效函数 Pandas 也是一个 Python 包,它提供了快速、灵活以及具有显著表达能力的数据结构,旨在使处理结构化 (表格化、多维、异构) 和时间序列数据变得既简单又直观...事实上,数据根本不需要标记就可以放入 Pandas 结构中。

6.2K10

(数据科学学习手札86)全平台支持的pandas运算加速神器

1 简介   随着其功能的不断优化与扩充,pandas已然成为数据分析领域最受欢迎的工具之一,但其仍然有着一个不容忽视的短板——难以快速处理大型数据集,这是由于pandas中的工作流往往是建立在单进程的基础上...图1 2 基于modin的pandas运算加速 modin支持Windows、Linux以及Mac系统,其中Linux与Mac平台版本的modin工作时可基于并行运算框架Ray和Dask,而Windows...as pd变更为import modin.pandas as pd即可,接下来我们来看一下在一些常见功能上,pandasVSmodin性能差异情况,首先我们分别使用pandas和modin读入一个大小为...对于这部分功能,modin会在执行代码时检查自己是否支持,对于尚未支持的功能modin会自动切换到pandas单核后端来执行运算,但由于modin中组织数据的形式与pandas不相同,所以中间需要经历转换...图7   这种时候modin的运算反而会比pandas慢很多: ?

60830
领券