不確定我的標題是否正確,但基本上我有一個(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)
添加回答
舉報
0/150
提交
取消