Без дополнительных пояснений, я собираюсь предположить, что вы работаете с массивами basi c NumPy. В этом случае вы можете использовать numpy.stack
с указанием axis
:
my_array = ...
n_copies = 3
replicated_array = np.stack([my_array for _ in range(n_copies)], axis=1)
Полный пример (размеры изменены в иллюстративных целях):
>>> import numpy as np
>>>
>>> a = np.array([[[0, 0, 1], [0, 1, 0]], [[0, 1, 1], [1, 0, 0]]]) # RGB images of dimension 2x2
>>> a
array([[[0, 0, 1],
[0, 1, 0]],
[[0, 1, 1],
[1, 0, 0]]])
>>> a.shape
(2, 2, 3)
>>>
>>> a_array = np.stack([a for _ in range(4)]) # Array of 4 images
>>> a_array.shape
(4, 2, 2, 3)
>>>
>>> # Replicate each of these images 9 times more and concatenate them
>>> # such that the output array should be one dimension higher
>>> np.stack([a_array for _ in range(10)], axis=1).shape
(4, 10, 2, 2, 3)