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 會是展平的陣列。

另請參閱

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