Heim >Backend-Entwicklung >Python-Tutorial >Harvesine-Vektorisierung von Vektorlisten

Harvesine-Vektorisierung von Vektorlisten

PHPz
PHPznach vorne
2024-02-06 08:03:06544Durchsuche

向量列表的 Harvesine 向量化

Frageninhalt

Ich habe einen Codeausschnitt, der die Halbsinusfunktion verwendet, um die Abstandsmatrix zwischen zwei Koordinatenlisten zu berechnen. Die aktuelle Implementierung funktioniert zwar, sie beinhaltet jedoch verschachtelte Schleifen und kann bei großen Datenmengen sehr zeitaufwändig sein. Ich suche nach einer effizienteren Alternative, die die Verwendung einer for-Schleife vermeidet.

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

Ich hätte gerne Ratschläge oder Codebeispiele für eine effizientere und schnellere Implementierung unter Vermeidung der Verwendung von for-Schleifen.


Richtige Antwort


Verwenden Sie haversine in sklearn. Indikatoren:

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

Das obige ist der detaillierte Inhalt vonHarvesine-Vektorisierung von Vektorlisten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen