Ответ @KennyTM очень удобен и действительно работает для вашего случая, но в качестве альтернативы, которая может предложить немного больше гибкости для расширения массивов, попробуйте np.repeat
:
>>> a = np.array([[1, 5, 9],
[2, 7, 3],
[8, 4, 6]])
>>> np.repeat(a,2, axis=1)
array([[1, 1, 5, 5, 9, 9],
[2, 2, 7, 7, 3, 3],
[8, 8, 4, 4, 6, 6]])
Итак, это выполняет повторение по одной оси, чтобы получить его по нескольким осям (как вам может понадобиться), просто вложите вызовы np.repeat
:
>>> np.repeat(np.repeat(a,2, axis=0), 2, axis=1)
array([[1, 1, 5, 5, 9, 9],
[1, 1, 5, 5, 9, 9],
[2, 2, 7, 7, 3, 3],
[2, 2, 7, 7, 3, 3],
[8, 8, 4, 4, 6, 6],
[8, 8, 4, 4, 6, 6]])
Вы также можете изменить количество повторений для любой начальной строки или столбца. Например, если вам нужно два повторения каждой строки, кроме последней строки:
>>> np.repeat(a, [2,2,1], axis=0)
array([[1, 5, 9],
[1, 5, 9],
[2, 7, 3],
[2, 7, 3],
[8, 4, 6]])
Здесь, когда вторым аргументом является list
, он указывает построчное (в данном случае по строкам, потому что axis=0
) повторяется для каждой строки.
person
dtlussier
schedule
19.11.2010