不同维度的numpy数组的区别

Difference of numpy arrays of different dimensions

假设我有两个二维数组 AB,形状分别为 (10, 10)(3, 3)

我想知道是否有一种方法可以在不使用循环的情况下计算 A - B 形状为:(10, 10, 9)

A 的每个元素与 B 的每个元素的差异。

使用外减法再reshape -

np.subtract.outer(A,B).reshape((A.shape)+(-1,))

或者将 A 扩展到 3D,将单例 dim 作为最后一个并减去 flattend B -

A[...,None] - B.ravel() # or B.flat in place of B.ravel()