#python #numpy #loops
#python #numpy #циклы
Вопрос:
Я хотел бы оценить евклидово расстояние от фиксированной точки до нескольких точек, я хочу сделать это через цикл. Почему не работает? Я также пробовал без «-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
Ответ №1:
Как насчет distance_matrix
:
from scipy.spatial import distance_matrix
distance_matrix(vettore, posizione).ravel()
Вывод:
array([ 1. , 2.23606798, 6.40312424, 9.21954446, 12.80624847])
Ответ №2:
Используйте append
для добавления элемента в list
codio= []
for i in range(0,len(vettore)-1):
codio.append(distance.euclidean(vettore[i], posizione))
Однако лучшим подходом является использование distance_metrics
в качестве ответа @Quang.