Вам не нужно создавать очень большой массив и изменять его форму.Поскольку вы знаете, каким должен быть каждый элемент и какую форму вы хотите получить, вы можете просто использовать numpy.broadcast_to
.Это требует настройки просто создания массива фигур (3,)
.
Настройка
arr = np.array([1,2,3])
np.broadcast_to(arr, (120, 100, 3))
array([[[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
...,
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]],
[[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
...,
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]]])
Чтобы получить версию этого вывода, не предназначенную только для чтения, вы можете позвонить copy()
:
out = np.broadcast_to(arr, (120, 100, 3)).copy()