大年夜本质上讲,代码的功能是改变数组。好的一方面是运行很快,甚至能和Dask并行处理速度比较。其次,如不雅应用的是最根本的Numpy和Python,那么就可以及时编译任何函数。坏的一面在于它只合适Numpy和R单Python语法。我不得不把所有的数值计算大年夜我的函数转换成子函数,但其计算速度会增长得异常快。
将其一路应用
简单地应用map_partition()就可以将Numba函数与Dask结合在一路,如不雅并行操作和broadcasting可以或许密切合作以加快运行速度,那么对于大年夜数据集而言,将会看到其运行速度获得大年夜幅晋升。
接下来,将map_partitions的lambda函数应用于每个分区。因为很多半据处理代码都是自力地运行,所以不必过多地担心┞封些操作的次序问题。最后,compute()函数告诉Dask来处理残剩的工作,并把最终计算结不雅反馈给我。在这里,compute()调用Dask将apply实用于每个分区,并使其并行处理。
膳绫擎的第一张图注解,没有broadcasting的线性寂?驿表示不佳,并行处理和Dask对速度晋升也有效不雅。此外,可以明显地发明,Dask和Numba组合的机能优于其它办法。
膳绫擎的第二张图稍微有些复杂,其横坐标是对行数取对数。大年夜第二张图可以发明,对于1k到10k如许小的数据集,零丁应用Numba的机能要比结合应用Numba+Dask的机能更好,尽管在大年夜数据集上Numba+Dask的机能异常好。
优化
可以肯定的说,必定有进一步的优化办法使得履行速度更快,但今朝没有发明。Dask是一个异常友爱的对象,本文应用Dask+Numba实现的最好结不雅是晋升运行速度60倍。如不雅你知道其它的晋升履行速度的技能,迎接在留言区分享。
Broadcasting可以实现更多的功能,如今看看骨架代码:
作者信息
Ernest Kim,旧金山大年夜学硕士生,专注于机械进修、数据科学。
【编辑推荐】
- 应用python+机械进修办法进行情感分析(具体步调)
- 大年夜0到1:Python爬虫常识点梳理
- 用Python研究了三千套房子,告诉你毕竟是什么举高了房价?
- 基于Python实现的微信石友数据分析
- Python拉勾网数据采集与可视化
推荐阅读
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践! 单模光纤的纤芯较细,使光线可以或许直接>>>详细阅读
本文标题:Python数据预处理:使用Dask和Numba并行化加速
地址:http://www.17bianji.com/lsqh/40675.html
1/2 1