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

 

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

对于任何数据科学家来说,速度和时间都是一个关键因素。在商业活动中,通常不会使用仅仅有数千个样本的玩具数据集。大部分时候你的数据集包括数百万或数亿个样本。客户订单,网络日志,帐单活动,股票价格等 - 现在的数据集非常庞大。
我猜你不会想花几个小时或几天,等待你的数据处理完成。迄今为止,我所使用的最大数据集包含超过3000万条记录。当我第一次运行数据处理脚本时,预估的完成时间约为4天!我没有非常强大的机器(Macbook Air与i5和4 GB的RAM),但我可以保证一晚上运行完脚本而不是数天。
感谢一些聪明的技巧,我能够将这个运行时间缩短到几个小时。这篇文章将解释实现良好数据处理性能的第一步 - 为您的数据集选择正确的库/框架。
下图显示了我的实验结果(详情如下),与纯Python的处理速度做出对比。

如你所见,Numpy的表现比Pandas的表现要好几倍。我个人喜欢用Pandas来简化许多繁琐的数据科学任务,它是我的首选工具。但是如果预计的处理时间超过多个小时,那么很遗憾,我只能使用Numpy来替代Pandas。
我非常清楚实际的性能可能会有很大的不同,这取决于任务和处理类型。所以请把这些结果仅仅作为参考。没有任何一个单独的测试可以全面对比所有软件工具的性能。

简介

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

导入模块

制作模拟随机数据集



Dataset size 54818 records



Python 原生方法

Pandas 方法

Numpy 方法

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


比较运行时间


Python average time: 38.77917420864105 seconds


Pandas average time: 10.483694124221802 seconds


Numpy average time: 2.914765810966492 seconds

展示结果


更多课程和文章尽在微信号:
「datartisan数据工匠」

 

由 Editor 于 2017 年 11 月 01 日 发布在 数据科学 栏目