将numpy.array a与numpy.array b的前导维度相乘

时间:2017-03-15 23:29:34

标签: python arrays numpy

我有两个numpy数组,ab,其中a的维度为1,与b的前导维度的长度相同,例如,

import numpy
a = numpy.random.rand(5)
b1 = numpy.random.rand(5)
b2 = numpy.random.rand(5, 3, 11)

我想将b的每个“行”与a中的相应条目相乘,得到一个与b形状相同的数组。

这样的东西
a[:, None, None] * b2

只有在我事先知道b的维度时才有效。

1 个答案:

答案 0 :(得分:4)

您可以使用

 (a * b.T).T

如果b是连续的

,则会产生一个连续的数组
(a*b.T).flags.contiguous
# False
(a*b.T).T.flags.contiguous
# True