Maison >développement back-end >Tutoriel Python >Vectorisation Harvestine de listes de vecteurs
J'ai un extrait de code qui utilise la fonction semi-sinus pour calculer la matrice de distance entre deux listes de coordonnées. Bien que l'implémentation actuelle fonctionne, elle implique des boucles imbriquées et peut prendre beaucoup de temps pour de grands ensembles de données. Je recherche une alternative plus efficace qui évite d'utiliser une boucle 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])
Je souhaite des conseils ou des exemples de code pour une mise en œuvre plus efficace et plus rapide en évitant l'utilisation de boucles for.
Utilisez haversine
dans sklearn. Indicateurs :
from sklearn.metrics.pairwise import haversine_distances haversine_distances(string_list_1,string_list_2)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!