
我有一个代码片段,它使用半正矢函数计算两个坐标列表之间的距离矩阵。虽然当前的实现有效,但它涉及嵌套循环,并且对于大型数据集可能非常耗时。我正在寻找一种更有效的替代方案,避免使用 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])
我希望得到建议或代码示例,以便更有效、更快速地实现避免使用 for 循环。
云点滴客户解决方案是针对中小企业量身制定的具有简单易用、功能强大、永久免费使用、终身升级维护的智能化客户解决方案。依托功能强大、安全稳定的阿里云平 台,性价比高、扩展性好、安全性高、稳定性好。高内聚低耦合的模块化设计,使得每个模块最大限度的满足需求,相关模块的组合能满足用户的一系列要求。简单 易用的云备份使得用户随时随地简单、安全、可靠的备份客户信息。功能强大的报表统计使得用户大数据分析变的简单,
正确答案
使用sklearn中的haversine。指标:
from sklearn.metrics.pairwise import haversine_distances haversine_distances(string_list_1,string_list_2)









