Повторите / продублируйте данный массив numy десять раз - PullRequest
0 голосов
/ 10 января 2019

У меня фигура array, (320, 320, 3). Я хочу повторить / дублировать эти данные 10 раз, и хочу получить новый массив формы ( 10 , 320, 320, 3).

Как это сделать?

array = np.ones((320, 320, 3))
print (array.shape)
(320, 320, 3)

Я пробовал как:

res = np.tile(array, 10)
print (res.shape)

(320, 320, 30).

Но я хочу shape из,

(10, 320, 320, 3)

Ответы [ 3 ]

0 голосов
/ 10 января 2019

Вы можете использовать np.resize, который будет выкладываться, если новый размер больше старого:

array = np.ones((320, 320, 3))

new_array = np.resize(array, (10, *array.shape))
print(new_array.shape)
# (10, 320, 320, 3)

С Документы :

numpy.resize(a, new_shape): если новый массив больше исходного массива, то новый массив заполняется повторными копиями.

0 голосов
/ 10 января 2019
res = np.tile(array, (10,1,1,1))
print (res.shape)
0 голосов
/ 10 января 2019

Мы можем использовать np.broadcast_to -

np.broadcast_to(a,(10,)+a.shape).copy() # a is input array

Если у нас все в порядке с представлением, пропустите .copy(), чтобы получить практически бесплатное время выполнения и нулевые накладные расходы памяти.

Мы также можем использовать np.repeat -

np.repeat(a[None],10,axis=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...