a0 = np.random.random((45, 72, 37, 24))
a = a0.copy()
v = np.random.random(37)
for i in range(len(v)):
    a[:, :, (i), :] *= v[i]
b = a0 * v[(None), (None), :, (None)]
np.allclose(a, b)
numpy element-wise multiplication of an array and a vector