Consider the following exercise in Numpy array broadcasting.
import numpy as np v = np.array([[1.0, 2.0]]).T # column array A2 = np.random.randn(2,10) # 2D arra
It's ugly, but this will work:
(v.T * A3.T).T
If you don't give it any arguments, transposing reverses the shape tuple, so you can now rely on the broadcasting rules to do their magic. The last transpose returns everything to the right order.