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

不确定我的标题是否正确,但基本上我有一个(x,y,z)格式的参考坐标,并且也有该格式的大型坐标列表/数组。我需要获得两者之间的欧几里得距离,因此从理论上讲,使用numpy和scipy,我应该能够执行以下操作:


import numpy, scipy.spatial.distance

a = 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的目的相违背。


长期而言,我想使用这些距离来计算真值掩码,以计算箱中的距离值。


我不确定我是在使用错误的函数还是在使用错误的函数,因此我无法在文档中找到任何能更好地工作的东西。


精慕HU
浏览 336回答 3
3回答

MYYA

此代码将获得欧几里得范式,该范式在许多情况下都应该有效,并且相当快,而且只有一行。根据需要,其他方法更为有效或灵活,我希望根据正在完成的工作发布其他一些解决方案。import numpya = numpy.array([1,1,1])b = numpy.random.rand(20,3)distances = numpy.linalg.norm(a - b, axis = 1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python