Вставка элементов в начало и конец массива numpy

у меня есть numpy время:

import numpy as np
a = np.array([2, 56, 4, 8, 564])

и я хочу добавить два элемента: один в начале массива, 88 и в конце, 77.

Я могу сделать это с:

a = np.insert(np.append(a, [77]), 0, 88)

, так что a в конечном итоге выглядит так:

array([ 88,   2,  56,   4,   8, 564,  77])

вопрос: Как правильно это сделать? Я чувствую, как гнездо np.append на np.insert скорее всего, это не питонический способ сделать это.

4 ответов


другой способ сделать это - использовать numpy.concatenate . Пример -

np.concatenate([[88],a,[77]])

демо -

In [62]: a = np.array([2, 56, 4, 8, 564])

In [64]: np.concatenate([[88],a,[77]])
Out[64]: array([ 88,   2,  56,   4,   8, 564,  77])

можно использовать np.concatenate -

np.concatenate(([88],a,[77]))

о:

a = np.hstack([88, a, 77])

вы можете передать список индексов np.insert :

>>> np.insert(a,[0,5],[88,77])
array([ 88,   2,  56,   4,   8, 564,  77])

или если вы не знаете длину массива, вы можете использовать array.size, чтобы указать конец массива :

>>> np.insert(a,[0,a.size],[88,77])
array([ 88,   2,  56,   4,   8, 564,  77])