我有两个一维 NumPy 数组 X
和 Y
。我需要计算 X
的每个元素和 Y
的每个元素之间的平均绝对差。最简单的方法是使用嵌套的 for
循环:
import numpy as np
np.random.seed(1)
X = np.random.randint(10, size=10)
Y = np.random.randint(10, size=10)
s = 0
for x in X:
for y in Y:
s += abs(x - y)
mean = s / (X.size * Y.size)
#3.4399999999999999
问题:NumPy 是否提供此解决方案的矢量化、更快版本?
编辑:我需要平均绝对差异(始终非负)。抱歉造成困惑。
最佳答案
如果我正确理解你的定义,你可以使用广播。
np.mean(np.abs(X[:, None] - Y))
关于numpy - 两个 numpy 数组的平均绝对差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50430585/