【问题标题】:speed up distance calculation in Python加快Python中的距离计算
【发布时间】:2021-07-01 17:29:14
【问题描述】:

如何加快这一行的执行速度:

from geopy import distance

...

df['Km'] = df.apply((lambda row: distance.distance(row['coord_1'],row['coord_2']).km),axis=1)

其中 coord_1 和 coord_2 是两组大坐标。

distance.distance 是一个地理函数 (https://github.com/geopy/geopy/blob/master/geopy/distance.py)

提前谢谢你。

--- 更新:我找到了 Vincenty 公式的 Cython 实现@github.com/dmsul/cyvincenty.git。它大大加快了性能---

【问题讨论】:

  • 您需要矢量化 distance.distance 函数(可能已经是,查看文档)。该函数是您的代码还是来自第三方库?
  • 如果函数是用 python 编写的,它可能是,用 C 实现你自己的可能会有所帮助。 Python 在计算几乎任何东西时都非常缓慢。
  • distance.distance函数来自geopy库

标签: python pandas geopy


【解决方案1】:

用 Vincenty 公式的 Cython 实现替换 Geopy@github.com/dmsul/cyvincenty.git。

它大大加快了性能。

感谢@Kilves。你的评论真的让我走上了正轨。

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 2020-05-17
    • 1970-01-01
    • 2013-09-27
    • 2019-08-01
    • 2016-05-19
    • 2013-04-23
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多