Vectorisation Harvestine de listes de vecteurs

PHPz
Libérer: 2024-02-06 08:03:06
avant
513 Les gens l'ont consulté

向量列表的 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])
Copier après la connexion

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)
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal