You can multiply numpy arrays by scalars and it just works.

>>> import numpy as np

>>> np.array([1, 2, 3]) * 2

array([2, 4, 6])

>>> np.array([[1, 2, 3], [4, 5, 6]]) * 2

array([[ 2, 4, 6],

[ 8, 10, 12]])

This is also a very fast and efficient operation. With your example:

>>> a_1 = np.array([1.0, 2.0, 3.0])

>>> a_2 = np.array([[1., 2.], [3., 4.]])

>>> b = 2.0

>>> a_1 * b

array([2., 4., 6.])

>>> a_2 * b

array([[2., 4.],

[6., 8.]])

Using .multiply() (ufunc multiply)

a_1 = np.array([1.0, 2.0, 3.0])

a_2 = np.array([[1., 2.], [3., 4.]])

b = 2.0

np.multiply(a_1,b)

# array([2., 4., 6.])

np.multiply(a_2,b)

# array([[2., 4.],[6., 8.]])