首頁  >  文章  >  後端開發  >  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