【发布时间】:2020-10-13 21:50:03
【问题描述】:
我想知道是否有一种快速的方法来计算 3D numpy 数组 (A [N,3]) 的所有点与第二个 3D numpy 数组 (B [M,3]) 的所有点之间的欧几里得距离。
然后我应该得到一个数组C,这将是[N, M],从数组A的点到数组B的点的所有距离,然后沿指定轴使用np.min()来获得所有最小距离集合点A 到集合点B。
这是我迄今为止完成的实现方式:
distances = np.repeat(9999, len(A))
for i, point in enumerate(A):
min_distance = np.min(np.sqrt(np.sum(np.square(point - B), axis=1)))
distances[i] = min_distance
有什么办法可以摆脱 for 循环...?
提前致谢:)
【问题讨论】:
-
from scipy.spatial import distance_matrix; dist_mat = distance_matrix(A,B).
标签: python arrays numpy distance