两个数组:
a = numpy.array([[2,3,2],[5,6,1]])
b = numpy.array([3,5])
c = a * b
我想要的是:
c = [[6,9,6],
[25,30,5]]
但是,我收到了这个错误:
ValueError: operands could not be broadcast together with shapes (2,3) (2)
如何乘以带有1D数组的nD数组,其中len(1D-array) == len(nD array)
?
答案 0 :(得分:21)
您需要将数组b转换为(2,1)形状数组,在索引元组中使用None或numpy.newaxis
:
import numpy
a = numpy.array([[2,3,2],[5,6,1]])
b = numpy.array([3,5])
c = a * b[:, None]
这是document。
答案 1 :(得分:2)