我想计算欧几里得距离并将其放在一个列表中。我收到范围错误,我错过了什么?



我想计算从一个固定点到几个点的欧氏距离,我想通过循环来计算。为什么不起作用?我也尝试过在没有"-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

distance_matrix:怎么样

from scipy.spatial import distance_matrix
distance_matrix(vettore, posizione).ravel()

输出:

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

使用append将项目添加到list

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

然而,更好的方法是使用distance_metrics作为@Quang的答案。

最新更新