不同维度的numpy数组的区别
Difference of numpy arrays of different dimensions
假设我有两个二维数组 A
和 B
,形状分别为 (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()
假设我有两个二维数组 A
和 B
,形状分别为 (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()