Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann Numpy die Haversine-Approximationsleistung in Pandas-Berechnungen verbessern?

Wie kann Numpy die Haversine-Approximationsleistung in Pandas-Berechnungen verbessern?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 20:42:02734Durchsuche

How Can Numpy Enhance Haversine Approximation Performance in Pandas Calculations?

Schnelle Haversine-Approximation: Nutzung von Numpy für verbesserte Leistung bei Pandas-Berechnungen

Berechnung von Abständen zwischen Koordinatenpaaren in einem Pandas-DataFrame mithilfe der Haversine-Formel kann bei großen Datensätzen rechenintensiv sein. Wenn die Punkte jedoch relativ nahe beieinander liegen und die Genauigkeitsanforderungen gelockert werden, ist eine schnellere Annäherung möglich.

Beachten Sie den folgenden Codeausschnitt:

<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>

Um die Leistung dieses Codes zu optimieren, haben wir kann die leistungsstarken Array-Operationen und Vektorisierungsfunktionen von Numpy nutzen. Dieser Ansatz macht Schleifen überflüssig und ermöglicht die effiziente Verarbeitung ganzer Arrays gleichzeitig.

Hier ist eine vektorisierte Implementierung mit 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>

Um dies in einen Pandas DataFrame zu integrieren, können wir einfach verwenden Folgendes:

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

Dieser vektorisierte Ansatz nutzt die optimierten Operationen von Numpy und eliminiert den zeitaufwändigen Schleifenprozess. Dadurch ist die Berechnung insbesondere bei großen Datensätzen deutlich schneller. Durch die Nutzung der Leistungsfähigkeit von Numpy können wir in Pandas schnellere und effizientere Haversinus-Approximationen erzielen.

Das obige ist der detaillierte Inhalt vonWie kann Numpy die Haversine-Approximationsleistung in Pandas-Berechnungen verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn