numpy.delete#
- numpy.delete(arr, obj, axis=None)[source]#
傳回一個沿著軸線刪除子陣列的新陣列。對於一維陣列,這會傳回 arr[obj] 未傳回的條目。
- 參數:
- arrarray_like
輸入陣列。
- objslice, int, array-like of ints or bools
指出要沿指定軸移除的子陣列的索引。
在 1.19.0 版本變更: 布林索引現在被視為要移除元素的遮罩,而不是轉換為整數 0 和 1。
- axisint, optional
要沿其刪除由 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])