首页 > 解决方案 > 使用一个for循环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

标签: pythonnumpyfor-loopeuclidean-distance

解决方案


你不需要任何循环。

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


推荐阅读