Numpy 三维空间中按尺寸矢量化距离

Numpy 三维空间中按尺寸矢量化距离,numpy,vectorization,distance,Numpy,Vectorization,Distance,对于三维中的每个点,我想得到它与同一维度上所有点的距离。沿着这些线但矢量化的东西: points = np.array([[1, 2], [-2, 4], [6, -1]]) dims, num_points = points.shape dist = np.zeros((dims, num_points, num_points)) for d in range(dims): for i in range(num_points): for j in range(num_

对于三维中的每个点,我想得到它与同一维度上所有点的距离。沿着这些线但矢量化的东西:

points = np.array([[1, 2], [-2, 4], [6, -1]])

dims, num_points = points.shape
dist = np.zeros((dims, num_points, num_points))
for d in range(dims):
    for i in range(num_points):
        for j in range(num_points):
            dist[d][i][j] = points[d][i] - points[d][j]
...
>>> dist
array([[[ 0., -1.],
        [ 1.,  0.]],

       [[ 0., -6.],
        [ 6.,  0.]],

       [[ 0.,  7.],
        [-7.,  0.]]])



使用
点[…,无]-点[:,无]
,复制几个外部广播问题将想法称为,但使用减法。这不是距离,而是差向量。如果这是您想要的,请按照用户3483203的建议执行。如果你真的想计算距离,你可以使用。@jdehesa不,这正是我想要的,匹配我的for循环代码。使用
点[…,无]-点[:,无]
,重复几个外部广播问题,将想法命名为,但使用减法。这不是距离,而是差向量。如果这是您想要的,请按照用户3483203的建议执行。如果您确实想计算距离,可以使用@jdehesa no。这正是我想要的,与我的for循环代码匹配。