数据处理性能对比(Python原生vs Pandas vs Numpy)
对于任何数据科学家来说,速度和时间都是一个关键因素。在商业活动中,通常不会使用仅仅有数千个样本的玩具数据集。大部分时候你的数据集包括数百万或数亿个样本。客户订单,网络日志,帐单活动,股票价格等 - 现在的数据集非常庞大。
我猜你不会想花几个小时或几天,等待你的数据处理完成。迄今为止,我所使用的***数据集包含超过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
展示结果
相关文章
- 快递物流查询API有什么作用?
- Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化|附代码数据
- PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享|附代码数据
- 理解Python的Dataclasses(一)
- Python写入csv出现空白行,如何解决?
- DataGrip连接Hive执行DDL操作报错
- Superset执行「superset db upgrade」命令的报错记录
- 执行MapReduce报错:无法分配内存 (errno=12)
- 使用Python3操作HBase的两种方法
- 执行Hive查询时出现OOM
- Python3操作MongoDB数据库
- Python异步: 定义、创建和运行协程(5)
- 7个提升Python程序性能的好习惯
- 10行代码-利用Python做一个微信聊天机器人(简单易懂)
- 使用defer释放资源
- python教程:shutil高级文件操作
- 用Python操作MySQL存储,这些你都会了吗?
- 单元测试|unittest生成测试报告
- 从0到1实现神经网络(Python)
- 时隔七年的填坑之作:《机器学习数学》书稿PDF免费下载了