【发布时间】:2021-03-09 04:35:41
【问题描述】:
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
【问题讨论】:
-
回答第 1 部分,- 只有
numpy,-X是Y -
是的,这部分回答了我的问题。谢谢你。但是您是否也知道如何使用一个 for 循环来做到这一点?
-
当您可以广播时,在
numpy中使用for循环没有任何好处。 完全使用一个for循环的限制听起来很可疑,就像一位教授试图阻止您在 SO 上寻求答案。假设是这种情况,我会给你一个面包屑 -np.ix_会给你两个索引列表,你可以zip一起做一个循环。你不应该,你没有必须,但你可以。 -
这确实是教授给我们的练习,哈哈。谢谢。
标签: python numpy for-loop euclidean-distance