a 形状 (n, k1) b 形状 (n, k2) ,我想计算 a[i] 和 b[i]
a
(n, k1)
b
(n, k2)
a[i]
b[i]
import numpy n = 3 a = numpy.random.rand(n, 7) b = numpy.random.rand(n, 11) out = numpy.array([ numpy.outer(a[i], b[i]) for i in range(n) ]) print(out.shape) # (n, 7, 11)
这是一个技巧,但它包含一个Python循环,大大降低了速度 n .
n
外积可以立即计算吗?
np.einsum('ij,ik->ijk', a, b)
或者,使用广播,
a[:,:,np.newaxis] * b[:,np.newaxis,:]