首页  >  文章  >  后端开发  >  Numpy 如何增强 Pandas 计算中的半正矢近似性能?

Numpy 如何增强 Pandas 计算中的半正矢近似性能?

Patricia Arquette
Patricia Arquette原创
2024-10-31 20:42:02734浏览

How Can Numpy Enhance Haversine Approximation Performance in Pandas Calculations?

快速半正弦近似:利用 Numpy 增强 Pandas 计算性能

使用半正弦公式计算 Pandas DataFrame 中坐标对之间的距离对于大型数据集来说,计算成本可能很高。然而,当点相对接近且精度要求放宽时,可以实现更快的近似。

考虑以下代码片段:

<code class="python">def haversine(lon1, lat1, lon2, lat2):
    ... # (haversine calculation)

for index, row in df.iterrows():
    df.loc[index, 'distance'] = haversine(row['a_longitude'], row['a_latitude'], row['b_longitude'], row['b_latitude'])</code>

为了优化此代码的性能,我们可以利用Numpy强大的数组运算和向量化功能。这种方法消除了循环的需要,并能够同时有效地处理整个数组。

这是使用 Numpy 的矢量化实现:

<code class="python">import numpy as np

def haversine_np(lon1, lat1, lon2, lat2):
    ... # (haversine calculation)

inputs = map(np.radians, [lon1, lat1, lon2, lat2])
distance = haversine_np(*inputs)</code>

要将其合并到 Pandas DataFrame 中,我们只需使用如下:

<code class="python">df['distance'] = haversine_np(df['lon1'], df['lat1'], df['lon2'], df['lat2'])</code>

这种向量化方法利用了 Numpy 的优化运算并消除了耗时的循环过程。因此,计算速度明显加快,尤其是对于大型数据集。通过利用 Numpy 的强大功能,我们可以在 Pandas 中实现更快、更高效的半正弦近似。

以上是Numpy 如何增强 Pandas 计算中的半正矢近似性能?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn