使用一个循环PYTHON计算欧几里德距离矩阵

PYTHON

如何仅使用一个 for 循环来计算欧几里得距离矩阵。注意:只使用 Numpy,不使用其他包。

先感谢您。

这是我使用两个 for 循环的代码:

m = 10
X = np.random.randint(10, size =(m,m))
D = np.zeros((m,m), dtype = int)
for i in range(0, m):
    for j in range(0, m):
        v = X[i,:] - X[j,:]
        D[i][j] = np.linalg.norm(v)
D

回答

你不需要任何循环。

np.linalg.norm((X[None, :, :] - X[:, None, :]), axis=-1) 会给你矩阵。


以上是使用一个循环PYTHON计算欧几里德距离矩阵的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>