Rumah >pembangunan bahagian belakang >Tutorial Python >Vektorisasi harvesine senarai vektor

Vektorisasi harvesine senarai vektor

PHPz
PHPzke hadapan
2024-02-06 08:03:06542semak imbas

向量列表的 Harvesine 向量化

Kandungan soalan

Saya mempunyai coretan kod yang menggunakan fungsi semisin untuk mengira matriks jarak antara dua senarai koordinat. Walaupun pelaksanaan semasa berfungsi, ia melibatkan gelung bersarang dan boleh memakan masa yang sangat lama untuk set data yang besar. Saya sedang mencari alternatif yang lebih cekap yang mengelakkan penggunaan gelung for.

import numpy as np
from haversine import haversine
    
string_list_1 = [(20.00,-100.1),...]  # List of vector pair coordinates (lat,long)

string_list_2 = [(21.00,-101.1),...]  # Another list of pair coordinates

dist_mat = np.zeros((len(string_list_1), len(string_list_2)))

for i, coord1 in enumerate(string_list_1):
   dist_mat[i, :] = np.array([haversine(coord1, coord2) for coord2 in string_list_2])

Saya ingin nasihat atau contoh kod untuk pelaksanaan yang lebih cekap dan lebih pantas mengelakkan penggunaan gelung for.


Jawapan betul


Gunakan haversine dalam sklearn. Petunjuk:

from sklearn.metrics.pairwise import haversine_distances
haversine_distances(string_list_1,string_list_2)

Atas ialah kandungan terperinci Vektorisasi harvesine senarai vektor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam