Home  >  Article  >  Backend Development  >  Harvesine vectorization of vector lists

Harvesine vectorization of vector lists

PHPz
PHPzforward
2024-02-06 08:03:06507browse

向量列表的 Harvesine 向量化

Question content

I have a code snippet that uses the semisine function to calculate the distance matrix between two coordinate lists. While the current implementation works, it involves nested loops and can be very time-consuming for large data sets. I'm looking for a more efficient alternative that avoids using a for loop.

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

I would like suggestions or code examples for a more efficient and faster implementation avoiding the use of for loops.


Correct answer


Use haversine in sklearn. index:

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

The above is the detailed content of Harvesine vectorization of vector lists. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete