一、delete函数简介
NumPy是Python中常用的科学计算库,它提供了许多方便的函数和工具来处理数值数据。其中,delete函数是一个用于删除数组中某些元素的函数。其函数原型为:
numpy.delete(arr, obj, axis=None)
其中,arr表示输入的数组,obj指明需要被删除的元素或子数组的位置,axis用于指明需要删除的轴。删除过后,将返回一个新的数组,原数组并不会发生改变。
二、删除某一行或列
其中最常用的场景是删除二维数组中的某一行或某一列。对于二维数组,我们通常需要指定删除的轴,例如在二维数组arr中,删除第3行可以这样实现:
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
new_arr = np.delete(arr, 2, axis=0)
print(new_arr)
运行结果为:
[[1 2 3]
[4 5 6]]
其中,np.delete(arr, 2, axis=0)表示在arr数组中删除第3行,axis=0表示删除的是行。
同样的,删除第3列可以这样实现:
new_arr = np.delete(arr, 2, axis=1)
print(new_arr)
运行结果为:
[[1 2]
[4 5]
[7 8]]
注意,此时的axis=1表示删除的是列。
三、删除多行或多列
当需要删除多行或多列时,可以直接在obj中输入需要删除的行数或列数:
new_arr = np.delete(arr, [1,2], axis=0)
print(new_arr)
运行结果为:
[[1 2 3]]
其中,np.delete(arr, [1,2], axis=0)表示在arr数组中删除第2行和第3行。
同样的,删除第2列和第3列可以这样实现:
new_arr = np.delete(arr, [1,2], axis=1)
print(new_arr)
运行结果为:
[[1]
[4]
[7]]
四、删除一维数组的某些元素
除了二维数组,如果需要删除一维数组中的某些元素,也可以使用delete函数:
arr = np.array([1,2,3,4,5])
new_arr = np.delete(arr, [2,4])
print(new_arr)
运行结果为:
[1 2 4]
其中,np.delete(arr, [2,4])表示在arr数组中删除第3个和第5个元素。
五、删除二维数组的某些子数组
除了删除行或列,delete函数还可以删除二维数组中的某些子数组。例如,在数组arr中,删除第2行、第3行和第4列可以这样实现:
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
new_arr = np.delete(arr, np.s_[1:3], axis=0)
new_arr = np.delete(new_arr, [1], axis=1)
print(new_arr)
运行结果为:
[[1 3]
[7 9]]
其中,np.delete(arr, np.s_[1:3], axis=0)表示在arr数组中删除第2行和第3行,np.s_[1:3]表示选中第2行和第3行。接着,我们需要再删除第4列,这可以通过np.delete(new_arr, [1], axis=1)来实现,其中[1]表示需要删除的列数。
六、总结
通过本文的介绍,我们了解到了NumPy中delete函数的基本用法和常见场景。delete函数可以帮助我们快速高效地删除数组中的某些元素或子数组,方便我们进行进一步的数据处理和分析。