numpy.delete#

numpy.delete(arr, obj, axis=None)[源代码]#

返回一个删除了轴上子数组的新数组。对于一维数组,它返回 arr[obj] 未返回的那些条目。

参数:
arrarray_like

输入数组。

obj切片、整数、整数或布尔值的数组类

指定沿指定轴删除子数组的索引。

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

axisint, optional

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