假设我有两个二维数组A
和B
,它们的形状分别为(10, 10)
和(3, 3)
。
我想知道是否有一种方法可以计算A - B
,使得形状为:(10, 10, 9)
,而无需使用循环。
即A
的每个元素与B
中的每个元素的差。
答案 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()