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.
Примеры
>>> 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]])