I have those arrays:
a = np.array([
[1,2],
[3,4],
[5,6],
[7,8]])
b = np.array([1,2,3,4])
and I want them to multiply like so:
[[1*1, 2*1],
[3*2, 4*2],
[5*3, 6*3],
[7*4, 8*4]]
... basically out[i] = a[i] * b[i], where a[i].shape is (2,) and b[i] then is a scalar.
What's the trick? np.multiply seems not to work:
>>> np.multiply(a, b)
ValueError: operands could not be broadcast together with shapes (4,2) (4)
broadcasting. You can read about it here, here and here. It's also more standard to use the operator*rather thanmultiplyaranges (outer product) gives a good concrete example.