原文出处:Medium
作者:Jeff Hale
原文标题:17 Strategies for Dealing with Data, Big Data, and Even Bigger Data
处理大数据很棘手。没有人喜欢内存不足的错误,没有人喜欢等待代码长时间运行,没有人喜欢离开Python。
Python是数据科学领域最流行的语言,Numpy和Pandas是进行数值计算和数据分析的主要工具。
不幸的是,如果你在本地工作,pandas可以处理的数据量受计算机内存的限制。如果你在云端工作,更多的内存会花费更多的钱。
不管你的代码在哪里运行,你都希望操作能快速发生,这样你就可以完成任务。
在本文中,我将提供一些技巧,并介绍强大的工具(三方库),以帮助您使用Python高效地处理大数据。
基础原则
如果您曾经听到或看到过关于加速代码的建议,那么您已经看到了警告:不要过早优化!这是个好建议。但了解技术也很重要,这样你就可以在一开始就编写干净快速的代码。
对于任何大小的数据集,都建议采用以下3个策略:
- 尽可能避免嵌套循环。循环嵌套会导致计算时间呈多项式增长,如果您有多个项目要搜索,将等待一段时间。
- 在Python中尽可能使用列表推导。与按需加载列表时重复加载列表的响应相比,创建溢出列表的速度更快。但是,一般来说,不要为了速度而牺牲代码可读性,所以要小心使用嵌套列表推导。
- 在pandas中,使用内置的矢量化函数,其原理与列表推导相似。一次将一个函数应用于整