您的位置:

NumPy的delete函数详解

一、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函数可以帮助我们快速高效地删除数组中的某些元素或子数组,方便我们进行进一步的数据处理和分析。