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 是一个展平的数组.
注释
通常,最好使用布尔掩码. 例如:
>>> 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])