基本上,s_{i,j} = a_i + b_j
如果n=len(a)
和m=len(b)
,那么s.shape
是(n,m)
。因此,上面的添加不是可交换的。
它涉及一些hocus pocus:
s = np.tile(a.reshape(n,1),m).reshape(n,m) + np.tile(b,n).reshape(n,m)
但我想知道是否已经有一些方法在numpy为此。我找不到。
是的,确实存在。 numpy
ufuncs有一个outer
方法:
s = np.add.outer(a, b)