Python高性能空间数据计算包:PyGEOS在Geopandas中的使用Python大数据分析共 1179字,需浏览 3分钟 ·2021-04-20 01:57 前文再续,书接上一回。上文说到geopandas可以使用PyGEOS做为空间计算引擎,而且给大家看了一下在空间索引的能力下能够提速的能力,今天我们来看看PyGEOS在GeoPandas里面的表现——好吧,下面所有的语法和用法,与PyGEOS就没啥关系,因为所有的计算都是geopandas的内容了。(谁叫geopandas的DataFrame模式在编码的时候这么好用呢……同理,pandas用的Numpy为底层,但是写起来的时候,还是没有任何numpy的内容在里面)如下所示,我们先来看看不启用PyGEOS情况下geopandas的表现:用一个面对10万个点,耗时6.1秒。下面我们来看看启用PyGEOS的情况下,同样的10万个点:耗时939毫秒,速度提升了6倍多。有同学问,上一篇文章里面用PyGEOS的空间索引,能够更有效的提升空间计算的效率,那么这里可以不可以呢?那答案自然是莫得问题:下面我们来看看不同计算引擎下面使用空间索引的计算能力:在不使用PyGEOS的情况下,使用10万条数据,使用空间索引之后的耗时是427毫秒,对比前面的6.1秒,提升了14倍我们换成PyGEOS的空间索引来试试:耗时37.9毫秒,比不用空间索引提升了24倍。下面我弄个大点的数据看看,比如100万:首先看看不使用PyGEOS情况下的速度:耗时为4.08秒然后我们来看看使用PyGEOS情况下的速度:耗时为392ms,也就是不到0.4秒,效果还是非常可观的。在空间索引做100万数据包含查询的情况下,使用PyGEOS做为空间计算引擎,比传统计算引擎要快10倍左右,可以预见,随着数据量越大,效果也自然就越好。如果我们与上一篇文章来对比一下,就会发现,在geopandas里面做空间索引之后去计算,比单纯用PyGEOS做空间索引之后去计算要快很很多,这是上篇文章里面的测试:同样是100万点包含,单纯用PyGEOS需要1.36秒,而在geopandas里面只需要0.39秒,快了差不多4倍。原因就是单纯用PyGEOS,点数据的组织是list模式,而不管是Python里面的list还是C语言里面的数组,模式本身就是一种非结构化的数据结构。而geopandas里面的DataFrame,是一种结构化的组织形式,所以更快是很正常的。加入知识星球【我们谈论数据科学】400+小伙伴一起学习!· 推荐阅读 ·用Python轻松开发数据库取数下载工具关于pip的15个使用小技巧秀啊,用Python快速开发在线数据库更新修改工具 浏览 85点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 libclOpenCL中的高性能计算库libCL是一个开源库,用于高性能计算在OpenCL。而不是一个特定的领域,libCL打算包含广泛的libclOpenCL中的高性能计算库0libclOpenCL中的高性能计算库libCL是一个开源库,用于高性能计算在OpenCL。而不是一个特定的领域,libCL打算包含广泛的并行算法。目标是提供一个日益增长的存储库的内核和数据结构的视觉中心计算从基本原语,例如排序、搜索和代libclOpenCL中的高性能计算库0浅析RoCE在高性能计算的应用智能计算芯世界0在Python中妥善使用进度条测试开发社区0在 Python 中有效使用 JSON 的6个技巧AI算法与图像处理0Numpile基于 LLVM 的科学计算 Python 包Numpile是极小的,由千行Python代码构成的,基于LLVM的数值科学计算工具。from numpile import autojit@autojitdef dot(a, b): c = Numpile基于 LLVM 的科学计算 Python 包0Numpile基于 LLVM 的科学计算 Python 包Numpile 是极小的,由千行 Python 代码构成的,基于 LLVM 的数值科学计算工具。frNumpile基于 LLVM 的科学计算 Python 包0Python 使用和高性能技巧总结马哥Linux运维0Python 使用和高性能技巧总结程序员大白0终于,可以在Excel中直接使用Python!早起Python0点赞 评论 收藏 分享 手机扫一扫分享分享 举报