numpy.delete#

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

返回一个沿着给定轴删除子数组的新数组.对于一维数组,这会返回那些未被 arr[obj] 返回的条目.

参数:
arrarray_like

输入数组.

objslice, int, 整数或布尔值的类数组对象

指示要沿着指定轴删除的子数组的索引.

在 1.19.0 版本发生变更: 现在,布尔索引被视为要删除的元素的掩码,而不是强制转换为整数 0 和 1.

axis整数,可选

删除由 obj 定义的子数组所沿的轴.如果 axis 为 None,则 obj 应用于展平的数组.

返回:
outndarray

arr 的一个副本,其中删除了由 obj 指定的元素. 请注意, 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])