ホームページ  >  記事  >  バックエンド開発  >  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。