scipy 网格中坐标集与固定点之间的欧氏距离

whhtz7ly  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(109)

我试图求出坐标系和一个固定点之间的欧几里得距离。
我有MxN组x,y,z坐标,我想求出它们和一个固定的x,y,z坐标之间的距离。
我知道我可以使用几个for循环来迭代,并使用scipy.spatial.distance.euclidean逐个计算距离,但当坐标的数量变得很大时(例如100x40),这最终会花费很长时间。有没有更有效的方法可以做到这一点?
obchardon的非常简短的示例

c = np.array([[[1,2,3],[4,5,6,]],[[1,1,1],[2,2,2]],[[6,5,4],[2,3,1]]])
# shape = (3,2,3) so 3x2 sets of x,y,z coords, so desire 3x2=6 sets of distances
s = np.array([[0],[0],[1]]) 

DISTANCEFUNC(c,s) -> 3x2 sets of euclidean distances
ekqde3dh

ekqde3dh1#

您可以使用np.linalg.norm

import numpy as np

coords = np.random.rand(M, N, 3) # Your sets of coordinates here
fixed  = np.random.rand(3)       # Fixed coordinate

distances = np.linalg.norm(coords - fixed, axis=2)
# shape (M, N) of distances

相关问题