numpy.insert

numpy.insert(a, obj, values, axis=None)

Функция insert() вставляет указанные элементы перед указанными индексами на указанной оси.

Параметры:
a - подобный массиву объект
Любой объект который может быть преобразован в массив NumPy.
obj - срез, целое число или последовательность целых чисел
Определяет позицию перед которой необходимо вставить объект. В случае множественных вставок, необходимо использовать последовательность целых чисел.
values - подобный массиву объект
Значение которое неоходимо вставить в массив. При множественной вставке необходимо использовать последовательность значений, причем длина values должна соответствовать длине последовательности obj. Тип данных values всегда приводится к типу данных массива a.
axis - целое число (необязательный)
Определяет ось, элементы вдоль которой необходимо удалить. По умолчанию axis = None, что соответствует сжиманию входного массива до одной оси и созданию так же одномерного результирующего массива без указанных подмассивов.
Возвращает:
ndarray - массив NumPy
Копия массива a с вставленными значениями values.
Смотрите так же: append, delete, expand_dims, concatenate

Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(7)
>>> 
>>> a
array([0, 1, 2, 3, 4, 5, 6])
>>> 
>>> #  Вставляет значение перед указанным индексом:
... np.insert(a, 0, 77)     
array([77,  0,  1,  2,  3,  4,  5,  6])
>>> 
>>> #  Вставляет последовательность перед указанным индексом:
... np.insert(a, 1, [11, 13])
array([ 0, 11, 13,  1,  2,  3,  4,  5,  6])
>>>
>>> #  Вставляет значение перед указанными индексами:
... np.insert(a, [0, 4, 7], 77)     
array([77,  0,  1,  2,  3, 77,  4,  5,  6, 77])
>>> 
>>> #  Одному индексу соответствует одно значение:
... np.insert(a, [1, 4, 7], [11, 13, 17])     
array([ 0, 11,  1,  2,  3, 13,  4,  5,  6, 17])
>>> 
>>> #  Вставляет значение перед каждым элементом среза массива:
... np.insert(a, a[2:5], 11)
array([ 0,  1, 11,  2, 11,  3, 11,  4,  5,  6])
>>>
>>> #  Вставляет перед каждым элементом из среза массива
... #  элемент из списка values:
... np.insert(a, a[2:5], [11, 13, 17])
array([ 0,  1, 11,  2, 13,  3, 17,  4,  5,  6])
>>>
>>>
>>> b = np.array([[2, 3], [5, 7]])
>>> b
array([[2, 3],
       [5, 7]])
>>> 
>>> np.insert(b, 1, 11)
array([ 2, 11,  3,  5,  7])
>>> 
>>> np.insert(b, 1, 11, axis = 0)
array([[ 2,  3],
       [11, 11],
       [ 5,  7]])
>>> 
>>> np.insert(b, 1, 11, axis = 1)
array([[ 2, 11,  3],
       [ 5, 11,  7]])
>>> 
>>> np.insert(b, 1, [11, 13], axis = 1)
array([[ 2, 11,  3],
       [ 5, 13,  7]])
>>> 
>>> np.insert(b, 1, [11, 13], axis = 0)
array([[ 2,  3],
       [11, 13],
       [ 5,  7]])
>>> np.insert(b, 1, [[11], [13]], axis = 0)
array([[ 2,  3],
       [11, 11],
       [13, 13],
       [ 5,  7]])
>>> 
>>>
>>> #  Использование индекса - числа или списка индексов
... #  дает разный результат:
... np.insert(b, 1, [[11], [13]], axis = 1)
array([[ 2, 11, 13,  3],
       [ 5, 11, 13,  7]])
>>> np.insert(b, [1], [[11], [13]], axis = 1)
array([[ 2, 11,  3],
       [ 5, 13,  7]])
>>>
>>> 
>>> #  Числа в списке индексов могут повторяться
... #  что соответствует нескольким вставкам подряд:
... np.insert(b, [1], [[11], [13]], axis = 1)
array([[ 2, 11,  3],
       [ 5, 13,  7]])
>>> 
>>> np.insert(b, [1, 1], [[11], [13]], axis = 1)
array([[ 2, 11, 11,  3],
       [ 5, 13, 13,  7]])
>>> np.insert(b, [1, 1, 1], [[11], [13]], axis = 1)
array([[ 2, 11, 11, 11,  3],
       [ 5, 13, 13, 13,  7]])