不同维数的numpy数组的区别

时间:2018-10-02 19:42:59

标签: numpy vectorization numpy-broadcasting

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

我想知道是否有一种方法可以计算A - B,使得形状为:(10, 10, 9),而无需使用循环。

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

1 个答案:

答案 0 :(得分:3)

使用外部减法,然后重塑-

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

或将A扩展到3D,以单调暗淡作为最后一个,并减去展平的B-

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