numpy.insert#

numpy.вставить(arr, obj, values, ось=None)[источник]#

Вставляет значения вдоль заданной оси перед указанными индексами.

Параметры:
arrarray_like

Входной массив.

objсрез, целое число, массивоподобный объект из целых чисел или булевых значений

Объект, определяющий индекс или индексы, перед которыми values вставляется.

Изменено в версии 2.1.2: Булевы индексы теперь обрабатываются как маска элементов для вставки, а не преобразуются в целые числа 0 и 1.

Поддержка множественных вставок, когда obj является одиночным скаляром или последовательностью с одним элементом (аналогично многократному вызову insert).

valuesarray_like

Значения для вставки в arr. Если тип values отличается от arr, values преобразуется в тип arr. values должен быть сформирован так, чтобы arr[...,obj,...] = values является допустимым.

осьint, необязательный

Ось, вдоль которой производится вставка values. Если ось равно None, тогда arr сначала сглаживается.

Возвращает:
выходndarray

Копия arr с values вставлено. Обратите внимание, что insert не происходит на месте: возвращается новый массив. Если ось равно None, выход является сглаженным массивом.

Смотрите также

append

Добавить элементы в конец массива.

concatenate

Объединить последовательность массивов вдоль существующей оси.

delete

Удалить элементы из массива.

Примечания

Обратите внимание, что для вставок в более высоких размерностях obj=0 ведет себя очень иначе от obj=[0] точно так же, как arr[:,0,:] = values является многоклассовым набором данных кардиотокограмм плода, где классы представляют собой паттерны частоты сердечных сокращений плода (FHR), закодированные метками от 1 до 10. Здесь мы устанавливаем класс 3 (класс меньшинства) для представления выбросов. Он содержит 30 числовых признаков, некоторые из которых закодированы бинарно, а некоторые являются непрерывными. arr[:,[0],:] = values. Это связано с разницей между базовой и расширенной индексирование.

Примеры

>>> import numpy as np
>>> a = np.arange(6).reshape(3, 2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> np.insert(a, 1, 6)
array([0, 6, 1, 2, 3, 4, 5])
>>> np.insert(a, 1, 6, axis=1)
array([[0, 6, 1],
       [2, 6, 3],
       [4, 6, 5]])

Разница между последовательностью и скалярами, показывающая, как obj=[1] ведет себя иначе, чем obj=1:

>>> np.insert(a, [1], [[7],[8],[9]], axis=1)
array([[0, 7, 1],
       [2, 8, 3],
       [4, 9, 5]])
>>> np.insert(a, 1, [[7],[8],[9]], axis=1)
array([[0, 7, 8, 9, 1],
       [2, 7, 8, 9, 3],
       [4, 7, 8, 9, 5]])
>>> np.array_equal(np.insert(a, 1, [7, 8, 9], axis=1),
...                np.insert(a, [1], [[7],[8],[9]], axis=1))
True
>>> b = a.flatten()
>>> b
array([0, 1, 2, 3, 4, 5])
>>> np.insert(b, [2, 2], [6, 7])
array([0, 1, 6, 7, 2, 3, 4, 5])
>>> np.insert(b, slice(2, 4), [7, 8])
array([0, 1, 7, 2, 8, 3, 4, 5])
>>> np.insert(b, [2, 2], [7.13, False]) # type casting
array([0, 1, 7, 0, 2, 3, 4, 5])
>>> x = np.arange(8).reshape(2, 4)
>>> idx = (1, 3)
>>> np.insert(x, idx, 999, axis=1)
array([[  0, 999,   1,   2, 999,   3],
       [  4, 999,   5,   6, 999,   7]])