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