numpy.delete

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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

返回具有沿着轴删除的子数组的新数组。对于一维数组,这返回未由arr [obj]返回的条目。

参数:

arr:array_like

输入数组。

obj:slice,int或int的数组

指示要删除的子数组。

axis:int,可选

要删除由obj定义的子阵列的轴。如果axis为None,则obj应用于展平的数组。

返回:

out:ndarray

删除了由obj指定的元素的arr副本。请注意,delete不会原地发生。如果axis为None,则out是一个展平的数组。

也可以看看

insert
将元素插入数组。
append
在数组末尾追加元素。

笔记

通常优选使用布尔掩码。例如:

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

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

例子

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