在numpy数组中计算点内的欧几里德距离

2024-10-01 15:42:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3D阵列

 A = [[x1 y1 z1]
      [x2 y2 z2]
      [x3 y3 z3]]

{{cdl3>之间的距离{cdl>

我有密码

^{pr2}$

但它会给出矩阵形式的距离

dist= [[0  a   b]
       [a  0   c]
       [b  c   0]]

我要的结果是[a b c]。在


Tags: 距离密码矩阵x1x2cdlz3y1
2条回答

考虑使用scipy.spatial.distance.pdist。在

你可以这样做。在

>>> A = np.array([[1, 2, 3], [4, 5, 6], [10, 20, 30]])
>>> scipy.spatial.distance.pdist(A)
array([  5.19615242,  33.67491648,  28.93095228])

但是要注意输出距离的顺序是(row0,row1),(row0,row2)和(row1,row2)。在

你可以这样做:

>>> import numpy as np
>>> from itertools import combinations
>>> A = np.array([[1, 2, 3], [4, 5, 6], [10, 20, 30]])
>>> [np.linalg.norm(a-b) for a, b in combinations(A, 2)]
[5.196152422706632, 33.674916480965472, 28.930952282978865]

相关问题 更多 >

    热门问题