使用一个循环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) 会给你矩阵。