Maison >développement back-end >Tutoriel Python >Vectorisation Harvestine de listes de vecteurs

Vectorisation Harvestine de listes de vecteurs

PHPz
PHPzavant
2024-02-06 08:03:06544parcourir

向量列表的 Harvesine 向量化

Contenu de la question

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.


Bonne réponse


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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer