小编Edw*_*ung的帖子

如何使用带有 NumPy 数组的矢量化来使用 Geopy 库为大型数据集计算测地线距离?

我正在尝试从一个数据框计算测地距离,该数据框由四列经纬度数据组成,大约有 300 万行。我使用了 apply lambda 方法来完成它,但完成任务花了 18 分钟。有没有办法将矢量化与 NumPy 数组一起使用来加速计算?谢谢你的回答。

我使用 apply 和 lambda 方法的代码:

from geopy import distance

df['geo_dist'] = df.apply(lambda x: distance.distance(
                              (x['start_latitude'], x['start_longitude']),
                              (x['end_latitude'], x['end_longitude'])).miles, axis=1)
Run Code Online (Sandbox Code Playgroud)

更新:

我正在尝试这段代码,但它给了我错误:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()。感谢有人可以提供帮助。

df['geo_dist'] = distance.distance(
                          (df['start_latitude'].values, df['start_longitude'].values),
                          (df['end_latitude'].values, df['end_longitude'].values)).miles
Run Code Online (Sandbox Code Playgroud)

python numpy vectorization coordinates geopy

7
推荐指数
2
解决办法
2321
查看次数

标签 统计

coordinates ×1

geopy ×1

numpy ×1

python ×1

vectorization ×1