首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想计算欧几里得距离,并将其列在列表中。我收到范围错误,我错过了什么?

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

Stack Overflow用户
提问于 2020-09-30 22:55:11
回答 2查看 31关注 0票数 2

我想要计算从一个固定点到几个点的欧几里得距离,我想通过一个循环来做。为什么不起作用?我也尝试了没有'-1‘的范围,但仍然不起作用

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-30 22:58:00

distance_matrix怎么样?

代码语言:javascript
复制
from scipy.spatial import distance_matrix

distance_matrix(vettore, posizione).ravel()

输出:

代码语言:javascript
复制
array([ 1.        ,  2.23606798,  6.40312424,  9.21954446, 12.80624847])
票数 2
EN

Stack Overflow用户

发布于 2020-09-30 23:40:13

使用appendlist中添加项目

代码语言:javascript
复制
codio= []
for i in range(0,len(vettore)-1):
    codio.append(distance.euclidean(vettore[i], posizione))

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64140283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档