Py学习  »  Python

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

网络大数据 • 6 年前 • 442 次点击  

导读

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

我猜你不会想花几个小时或几天,等待你的数据处理完成。迄今为止,我所使用的最大数据集包含超过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


展示结果




感谢观看!

end



网络大数据

 (ID:raincent_com


网络大数据 www.raincent.com

由清华CDN实验室于2011年创办,

致力于打造中国最专业的网络大数据科学门户网站。


识别二维码,关注网络大数据





今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/xdlOM8pqWf
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4041
 
442 次点击