两个 numpy 数组的平均绝对差

DYZ*_*DYZ 6 numpy difference

我有两个一维 NumPy 数组XY. 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
Run Code Online (Sandbox Code Playgroud)

问题: NumPy 是否提供该解决方案的矢量化、更快版本?

编辑:我需要平均绝对差(始终非负)。对困惑感到抱歉。

mir*_*ulo 5

如果我正确理解你的定义是什么,你可以使用广播。

np.mean(np.abs(X[:, None] - Y))
Run Code Online (Sandbox Code Playgroud)