对于任何数据科学家来说,速度和时间都是一个关键因素。在商业活动中,通常不会使用仅仅有数千个样本的玩具数据集。大部分时候你的数据集包括数百万或数亿个样本。客户订单,网络日志,帐单活动,股票价格等 - 现在的数据集非常庞大。
我猜你不会想花几个小时或几天,等待你的数据处理完成。迄今为止,我所使用的***数据集包含超过3000万条记录。当我***次运行数据处理脚本时,预估的完成时间约为4天!我没有非常强大的机器(Macbook Air与i5和4 GB的RAM),但我可以保证一晚上运行完脚本而不是数天。
感谢一些聪明的技巧,我能够将这个运行时间缩短到几个小时。这篇文章将解释实现良好数据处理性能的***步 - 为您的数据集选择正确的库/框架。
下图显示了我的实验结果(详情如下),与纯Python的处理速度做出对比。
如你所见,Numpy的表现比Pandas的表现要好几倍。我个人喜欢用Pandas来简化许多繁琐的数据科学任务,它是我的***工具。但是如果预计的处理时间超过多个小时,那么很遗憾,我只能使用Numpy来替代Pandas。
我非常清楚实际的性能可能会有很大的不同,这取决于任务和处理类型。所以请把这些结果仅仅作为参考。没有任何一个单独的测试可以全面对比所有软件工具的性能。
简介
在下面的 Notebook 中你将会比较 Python 原生方法, Pandas 和 Numpy 处理数据的速度。
导入模块
制作模拟随机数据集
Python 原生方法
Pandas 方法
Numpy 方法
检查是否所有的方法生成同样的结果
比较运行时间
Python average time: 38.77917420864105 seconds
Pandas average time: 10.483694124221802 seconds
Numpy average time: 2.914765810966492 seconds
展示结果