Для эффективности (память, производительность), просто broadcast
с np.broadcast_to
для вывода представления -
np.broadcast_to(mean_value,(h,w,)+mean_value.shape)
Будучи представлением, оно не имеет дополнительной памяти и, следовательно,, практически бесплатно во время выполнения.
Давайте проверим часть производительности -
In [45]: mean_value = np.array([1, 2, 3], dtype=np.float32)
...: h, w = 5, 5
In [46]: %timeit np.broadcast_to(mean_value,(h,w,)+mean_value.shape)
100000 loops, best of 3: 3.21 µs per loop
In [47]: mean_value = np.random.rand(10000)
...: h, w = 5000, 5000
In [48]: %timeit np.broadcast_to(mean_value,(h,w,)+mean_value.shape)
100000 loops, best of 3: 3.22 µs per loop
И часть памяти (будучи представлением) -
In [49]: np.shares_memory(mean_value,np.broadcast_to(mean_value,(h,w,)+mean_value.shape))
Out[49]: True