求改进cdist实现:获取点间最近距离及对应Points索引
改进cdist代码以同时返回最近点距离与对应索引
你可以先计算完整的距离矩阵,再分别提取最小距离和对应索引,这样无需重复计算距离矩阵,能保证效率:
from scipy.spatial import distance import numpy as np # 假设 Coordinates、Points 是已定义的二维数组(每行代表一个点) dist_matrix = distance.cdist(Coordinates, Points) # 获取每个 Coordinates 点对应的最近点距离 min_distances = dist_matrix.min(axis=1) # 获取每个 Coordinates 点对应的 Points 中最近点的索引 nearest_indices = dist_matrix.argmin(axis=1)
min_distances是一维数组,每个元素对应Coordinates中单个点到Points的最近距离nearest_indices是一维数组,每个元素对应Points中距离当前Coordinates点最近的点的索引
如果需要将距离与索引一一配对,可以用 list(zip(min_distances, nearest_indices)) 得到包含(距离,索引)元组的列表。
内容的提问来源于stack exchange,提问作者Effe
相关产品推荐
相关产品推荐

