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]])