为了账号安全,请及时绑定邮箱和手机立即绑定

不同形状阵列的Numpy距离计算

不同形状阵列的Numpy距离计算

精慕HU 2021-04-09 18:45:49
不确定我的标题是否正确,但基本上我有一个(x,y,z)格式的参考坐标,并且也有该格式的大型坐标列表/数组。我需要获得两者之间的欧几里得距离,因此从理论上讲,使用numpy和scipy,我应该能够执行以下操作:import numpy, scipy.spatial.distancea = numpy.array([1,1,1])b = numpy.random.rand(20,3)distances = scipy.spatial.distance.euclidean(b, a)但是,我没有得到一个数组,而是得到了一个错误: ValueError: Input vector should be 1-D.不知道如何解决此错误并获得我想要的内容而不必求助于循环等,这与使用Numpy的目的相违背。长期而言,我想使用这些距离来计算真值掩码,以计算箱中的距离值。我不确定我是在使用错误的函数还是在使用错误的函数,因此我无法在文档中找到任何能更好地工作的东西。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

此代码将获得欧几里得范式,该范式在许多情况下都应该有效,并且相当快,而且只有一行。根据需要,其他方法更为有效或灵活,我希望根据正在完成的工作发布其他一些解决方案。


import numpy

a = numpy.array([1,1,1])

b = numpy.random.rand(20,3)


distances = numpy.linalg.norm(a - b, axis = 1)


查看完整回答
反对 回复 2021-04-27
  • 3 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号