作家
登录

Python数据预处理:使用Dask和Numba并行化加速

作者: 来源: 2018-03-13 14:03:50 阅读 我要评论

  • # likewise, l1 and l2 are now equal sized arrays 
  • # containing distance of point to all intersections 
  •       dist = l1_arr + l2_arr 
  •       match_arr = dist < (l3_arr * 1.2) 
  • # so instead of iterating, I just immediately compare all 
  • of my 
  • # point-to-street distances at once and have a handy 
  • # boolean index 
  • 大年夜本质上讲,代码的功能是改变数组。好的一方面是运行很快,甚至能和Dask并行处理速度比较。其次,如不雅应用的是最根本的Numpy和Python,那么就可以及时编译任何函数。坏的一面在于它只合适Numpy和R单Python语法。我不得不把所有的数值计算大年夜我的函数转换成子函数,但其计算速度会增长得异常快。

    将其一路应用

    简单地应用map_partition()就可以将Numba函数与Dask结合在一路,如不雅并行操作和broadcasting可以或许密切合作以加快运行速度,那么对于大年夜数据集而言,将会看到其运行速度获得大年夜幅晋升。


    Python数据预处理:应用Dask和Numba并行化加快

    接下来,将map_partitions的lambda函数应用于每个分区。因为很多半据处理代码都是自力地运行,所以不必过多地担心┞封些操作的次序问题。最后,compute()函数告诉Dask来处理残剩的工作,并把最终计算结不雅反馈给我。在这里,compute()调用Dask将apply实用于每个分区,并使其并行处理。

    Python数据预处理:应用Dask和Numba并行化加快

    膳绫擎的第一张图注解,没有broadcasting的线性寂?驿表示不佳,并行处理和Dask对速度晋升也有效不雅。此外,可以明显地发明,Dask和Numba组合的机能优于其它办法。

    膳绫擎的第二张图稍微有些复杂,其横坐标是对行数取对数。大年夜第二张图可以发明,对于1k到10k如许小的数据集,零丁应用Numba的机能要比结合应用Numba+Dask的机能更好,尽管在大年夜数据集上Numba+Dask的机能异常好。

    优化

    可以肯定的说,必定有进一步的优化办法使得履行速度更快,但今朝没有发明。Dask是一个异常友爱的对象,本文应用Dask+Numba实现的最好结不雅是晋升运行速度60倍。如不雅你知道其它的晋升履行速度的技能,迎接在留言区分享。

    Broadcasting可以实现更多的功能,如今看看骨架代码:

    作者信息

    Ernest Kim,旧金山大年夜学硕士生,专注于机械进修、数据科学。

    【编辑推荐】

    1. 应用python+机械进修办法进行情感分析(具体步调)
    2. 大年夜0到1:Python爬虫常识点梳理
    3. 用Python研究了三千套房子,告诉你毕竟是什么举高了房价?
    4. 基于Python实现的微信石友数据分析
    5. Python拉勾网数据采集与可视化
    【义务编辑:未丽燕 TEL:(010)68476606】

      推荐阅读

      教你如何区别单模与多模光纤

    沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践! 单模光纤的纤芯较细,使光线可以或许直接>>>详细阅读


    本文标题:Python数据预处理:使用Dask和Numba并行化加速

    地址:http://www.17bianji.com/lsqh/40675.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)