一次计算所有外部产品

时间:2017-09-08 09:42:36

标签: python arrays numpy

给定形状a的数组(n, k1)和形状b的数组(n, k2),我想计算a[i]和{的所有外部产品{1}}。这个

b[i]

可以解决问题,但它包含一个Python循环,可以减慢大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) 的速度。

可以立即计算外部产品吗?

1 个答案:

答案 0 :(得分:2)

np.einsum('ij,ik->ijk', a, b)

或者,使用广播,

a[:,:,np.newaxis] * b[:,np.newaxis,:]