一、刪除數組中的元素
numpy中的np.delete函數可以用來刪除數組中指定位置的元素。它的語法是:
np.delete(arr, obj, axis=None)其中,arr表示要刪除元素的數組;obj可以是要刪除的元素的下標或者用于指定要刪除的行/列的切片對象;axis表示要刪除的軸的方向。
舉個例子,假設有如下的一個數組:
import numpy as np arr = np.array([[1, 2], [3, 4], [5, 6]]) print(arr)輸出結果如下:
array([[1, 2], [3, 4], [5, 6]])
我們可以使用np.delete來刪除第一行和最后一行:
new_arr = np.delete(arr, [0, 2], axis=0) print(new_arr)輸出結果如下:
array([[3, 4]])
在上面的例子中,我們傳入了一個列表[0, 2]作為要刪除的行的下標,將第一行和最后一行刪除了。
二、刪除數組中的多個元素
如果要刪除多個元素,可以將它們的下標放在一個列表中,然后傳給np.delete函數。比如下面的例子中我們刪除了數組中的第1列和第3列:
new_arr = np.delete(arr, [0, 2], axis=1) print(new_arr)輸出結果如下:
array([[2], [4], [6]])
三、刪除數組中的指定元素
除了按照行或列刪除一整段數據,np.delete還可以按照元素刪除。
例如,有如下一個數組:
arr = np.array([1, 2, 3, 4, 5]) print(arr)輸出結果如下:
array([1, 2, 3, 4, 5])
我們可以使用np.delete來刪除其中的一些元素:
new_arr = np.delete(arr, [0, 2]) print(new_arr)輸出結果如下:
array([2, 4, 5])
在上面的例子中,我們傳入了一個列表[0, 2],將數組中的第1個和第3個元素刪除了。
四、刪除多個數組中的元素
如果要刪除多個數組中的元素,可以將它們連接在一起,然后一起傳給np.delete函數。比如下面的例子中我們刪除了數組a和數組b中的下標為1的元素:
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = np.concatenate((a, b)) new_c = np.delete(c, 1) print(new_c)輸出結果如下:
array([1, 3, 4, 5, 6])
五、刪除元素時保持數組的維度
有時候在刪除元素時需要保持數組的維度,這時可以給axis參數傳入一個元組,來指定要沿哪些軸方向刪除元素。比如下面的例子,我們刪除掉數組中的第1行和第3行,但是要保持數組的維度不變:
arr = np.array([[1, 2], [3, 4], [5, 6]]) new_arr = np.delete(arr, (0, 2), axis=(0, 0)).reshape(1, 4) print(new_arr)輸出結果如下:
array([[3, 4, 5, 6]])
六、總結
np.delete函數可以用來刪除數組中指定位置的元素,可以按照行或列刪除一整段數據,也可以按照元素刪除。如果要刪除多個數組中的元素,可以將它們連接在一起,然后一起傳給np.delete函數。如果要刪除元素時需要保持數組的維度,可以給axis參數傳入一個元組,來指定要沿哪些軸方向刪除元素。