数据处理性能对比(Python原生vs Pandas vs Numpy)

大数据
对于任何数据科学家来说,速度和时间都是一个关键因素。在商业活动中,通常不会使用仅仅有数千个样本的玩具数据集。大部分时候你的数据集包括数百万或数亿个样本。客户订单,网络日志,帐单活动,股票价格等 - 现在的数据集非常庞大。

对于任何数据科学家来说,速度和时间都是一个关键因素。在商业活动中,通常不会使用仅仅有数千个样本的玩具数据集。大部分时候你的数据集包括数百万或数亿个样本。客户订单,网络日志,帐单活动,股票价格等 - 现在的数据集非常庞大。

我猜你不会想花几个小时或几天,等待你的数据处理完成。迄今为止,我所使用的***数据集包含超过3000万条记录。当我***次运行数据处理脚本时,预估的完成时间约为4天!我没有非常强大的机器(Macbook Air与i5和4 GB的RAM),但我可以保证一晚上运行完脚本而不是数天。

感谢一些聪明的技巧,我能够将这个运行时间缩短到几个小时。这篇文章将解释实现良好数据处理性能的***步 - 为您的数据集选择正确的库/框架。

下图显示了我的实验结果(详情如下),与纯Python的处理速度做出对比。

数据处理性能对比(Python原生vs Pandas vs Numpy)

如你所见,Numpy的表现比Pandas的表现要好几倍。我个人喜欢用Pandas来简化许多繁琐的数据科学任务,它是我的***工具。但是如果预计的处理时间超过多个小时,那么很遗憾,我只能使用Numpy来替代Pandas。

我非常清楚实际的性能可能会有很大的不同,这取决于任务和处理类型。所以请把这些结果仅仅作为参考。没有任何一个单独的测试可以全面对比所有软件工具的性能。

简介

在下面的 Notebook 中你将会比较 Python 原生方法, Pandas 和 Numpy 处理数据的速度。

导入模块

数据处理性能对比(Python原生vs Pandas vs Numpy)

制作模拟随机数据集

数据处理性能对比(Python原生vs Pandas vs Numpy)

数据处理性能对比(Python原生vs Pandas vs Numpy)

数据处理性能对比(Python原生vs Pandas vs Numpy)
Dataset size 54818 records

数据处理性能对比(Python原生vs Pandas vs Numpy)

数据处理性能对比(Python原生vs Pandas vs Numpy)

 

 

Python 原生方法

数据处理性能对比(Python原生vs Pandas vs Numpy)

Pandas 方法

数据处理性能对比(Python原生vs Pandas vs Numpy)

Numpy 方法

数据处理性能对比(Python原生vs Pandas vs Numpy)

检查是否所有的方法生成同样的结果

数据处理性能对比(Python原生vs Pandas vs Numpy)

数据处理性能对比(Python原生vs Pandas vs Numpy)

 

 

比较运行时间

数据处理性能对比(Python原生vs Pandas vs Numpy)

 

Python average time: 38.77917420864105 seconds

数据处理性能对比(Python原生vs Pandas vs Numpy)

Pandas average time: 10.483694124221802 seconds

数据处理性能对比(Python原生vs Pandas vs Numpy)

Numpy average time: 2.914765810966492 seconds

展示结果

数据处理性能对比(Python原生vs Pandas vs Numpy)

数据处理性能对比(Python原生vs Pandas vs Numpy)

责任编辑:未丽燕 来源: 数据工匠
相关推荐

2023-07-10 13:51:45

测试并行计算框架

2024-10-09 11:31:51

2023-07-31 11:44:38

Pandas性能数组

2023-11-27 00:46:39

裸机虚拟机

2022-11-17 11:52:35

pandasPySpark大数据

2021-05-07 17:46:53

存储IO

2013-08-26 09:36:27

大数据NoSQLMongoDB

2009-12-16 15:49:58

VS 2008性能

2023-06-12 00:36:28

迭代向量化Pandas

2023-12-12 11:06:37

PythonPandas数据

2023-09-25 13:19:41

pandasPython

2023-12-13 13:23:21

GPUPandas

2012-07-18 10:41:35

语音功能

2024-05-08 14:05:03

时间序列数据

2011-12-06 10:00:52

Ubuntu性能测试

2009-09-07 09:15:36

.NET VS Jav

2022-11-24 12:07:47

英特尔

2019-06-12 16:21:52

时间序列PythonPandas

2020-05-18 07:00:00

性能测试压力测试负载测试

2011-06-08 16:59:04

性能测试载测试压力测试
点赞
收藏

51CTO技术栈公众号