首页 > 解决方案 > 我想计算欧几里得距离并将其放入列表中。我收到范围错误,我错过了什么?

问题描述

我想评估从一个固定点到几个点的欧几里德距离,我想通过一个循环来完成。为什么不工作?我也试过没有'-1'的范围但仍然没有工作

from scipy.spatial import distance
vettore = np.array(np.mat('1 2; 3 4;6,7;8,9;10,12'))
posizione= np.array(np.mat('2,2'))


codio= []
for i in range(0,len(vettore)-1):
    codio[i]=distance.euclidean(vettore[i],posizione)
    
codio


>>> IndexError: list assignment index out of range

标签: pythonnumpyloops

解决方案


怎么样distance_matrix

from scipy.spatial import distance_matrix

distance_matrix(vettore, posizione).ravel()

输出:

array([ 1.        ,  2.23606798,  6.40312424,  9.21954446, 12.80624847])

推荐阅读