一、删除数组中的元素
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参数传入一个元组,来指定要沿哪些轴方向删除元素。