Bagaimanakah Numpy Boleh Meningkatkan Prestasi Penghampiran Haversine dalam Pengiraan Panda?

Patricia Arquette
Lepaskan: 2024-10-31 20:42:02
asal
752 orang telah melayarinya

How Can Numpy Enhance Haversine Approximation Performance in Pandas Calculations?

Penghampiran Haversine Pantas: Memanfaatkan Numpy untuk Prestasi Dipertingkatkan dalam Pengiraan Panda

Mengira jarak antara pasangan koordinat dalam Bingkai Data Pandas menggunakan formula haversine boleh menjadi mahal dari segi pengiraan untuk set data yang besar. Walau bagaimanapun, apabila mata agak hampir dan keperluan ketepatan dilonggarkan, anggaran yang lebih pantas adalah mungkin.

Pertimbangkan coretan kod berikut:

<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>
Salin selepas log masuk

Untuk mengoptimumkan prestasi kod ini, kami boleh memanfaatkan operasi tatasusunan Numpy yang berkuasa dan keupayaan vektorisasi. Pendekatan ini menghapuskan keperluan untuk gelung dan membolehkan pemprosesan yang cekap bagi keseluruhan tatasusunan secara serentak.

Berikut ialah pelaksanaan vektor menggunakan 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>
Salin selepas log masuk

Untuk memasukkan ini ke dalam Pandas DataFrame, kita hanya boleh menggunakan yang berikut:

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

Pendekatan vektor ini mengambil kesempatan daripada operasi dioptimumkan Numpy dan menghapuskan proses gelung yang memakan masa. Akibatnya, pengiraan adalah lebih pantas, terutamanya untuk set data yang besar. Dengan memanfaatkan kuasa Numpy, kami boleh mencapai anggaran haversine yang lebih pantas dan lebih cekap dalam Panda.

Atas ialah kandungan terperinci Bagaimanakah Numpy Boleh Meningkatkan Prestasi Penghampiran Haversine dalam Pengiraan Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!