numpy.delete#

numpy.delete(arr, obj, axis=None)[source]#

返回一个新的数组,其中沿指定轴删除了子数组。对于一维数组,这将返回 arr[obj] 未返回的那些条目。

参数:
arrarray_like

输入数组。

obj切片、整数或整数数组

指示沿指定轴要移除的子数组的索引。

1.19.0 版中的更改: 布尔索引现在被视为要移除的元素的掩码,而不是转换为整数 0 和 1。

axisint,可选

要沿其删除由 obj 定义的子数组的轴。如果 axis 为 None,则 obj 将应用于扁平化的数组。

返回值:
outndarray

具有删除 obj 指定元素的 arr 的副本。请注意,delete 不会就地发生。如果 axis 为 None,则 out 是一个扁平化的数组。

另请参见

insert

将元素插入数组。

append

在数组末尾追加元素。

备注

通常最好使用布尔掩码。例如

>>> arr = np.arange(12) + 1
>>> mask = np.ones(len(arr), dtype=bool)
>>> mask[[0,2,4]] = False
>>> result = arr[mask,...]

等效于 np.delete(arr, [0,2,4], axis=0),但允许进一步使用 mask

示例

>>> import numpy as np
>>> arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> arr
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
>>> np.delete(arr, 1, 0)
array([[ 1,  2,  3,  4],
       [ 9, 10, 11, 12]])
>>> np.delete(arr, np.s_[::2], 1)
array([[ 2,  4],
       [ 6,  8],
       [10, 12]])
>>> np.delete(arr, [1,3,5], None)
array([ 1,  3,  5,  7,  8,  9, 10, 11, 12])