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