numpy 2n-d矩阵的欧氏距离矩阵

kognpnkq  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(130)

我被告知可以不使用循环来计算两个矩阵数据集的欧氏距离矩阵(matrix1.shape = (n_1, ...)matrix2.shape = (n_2, ...),这里我们要计算n_1 * n_2欧氏距离矩阵),我模糊地认为它与broadcasting有关,但我甚至不确定从哪里开始。
这是可能的吗?大多数在线解决方案似乎都需要循环。

ar7v8xwq

ar7v8xwq1#

这个?

import numpy as np

a = np.random.rand(2,3,4)
b = np.random.rand(5,3,4)

n = np.linalg.norm(a[:,None]-b, axis=(2,3))

None为广播创建了一个新的轴,axis=(2,3)告诉我们在哪个轴上计算范数。

相关问题