我有两个numpy数组,a
和b
,其中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
的维度时才有效。
答案 0 :(得分:4)
您可以使用
(a * b.T).T
如果b是连续的
,则会产生一个连续的数组(a*b.T).flags.contiguous
# False
(a*b.T).T.flags.contiguous
# True