Вставьте нули между элементами в массиве NumPy - PullRequest
0 голосов
/ 19 января 2019

У меня есть следующий массив a = np.array([1, 2, 3, 4, 9, 8, 7, 6]) теперь я должен добавить 2/12/22 нуля, чтобы добавить его в матрицу с 10/20/30 столбцами.

Это должно выглядеть так: a = np.array([1, 2, 3, 4, 9, 8, 7, 6]) -> a = np.array([1, 2, 3, 4, 0, 0, ..., 0, 0, 9, 8, 7, 6])

Я использую np.pad для заполнения нулями на границах массива, но есть ли способ сделать это наоборот?

Ответы [ 2 ]

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

Это миссия для функции numpy.insert, пример (2 нуля):

a = np.array([1, 2, 3, 4, 9, 8, 7, 6])
a = np.insert(a,4,np.zeros(2))
print(a) #prints [1 2 3 4 0 0 9 8 7 6]

Объяснение: вы можете прочитать это insert как: получить массив a, добавить за 4 thэлемент: 2 zeros.

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

Вы можете объединить функцию hstack с нарезкой исходной матрицы, чтобы вы могли сложить начало матрицы, нули и оставшуюся часть матрицы:

a = np.array([1, 2, 3, 4, 9, 8, 7, 6])
result = np.hstack((a[0:4], np.zeros(12), a[4:]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...