快速半正弦近似:利用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中文網其他相關文章!