高速ハーバーサイン近似: 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 中国語 Web サイトの他の関連記事を参照してください。