您的位置:

numpy.delete函数全方位详解

一、numpy.delete概述

numpy.delete函数是numpy库中的一个重要函数,它可用于数组的切片操作,并且能够在不改变原数组的形状的情况下,删除指定的子数组。

在使用delete函数的时候,需要注意序号的表示方式,序号从0开始计数。

二、删除数组中的一行或一列

在numpy中,可以通过指定axis参数,来选择要删除的行或列。

import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])

# 删除第一行
np.delete(arr, 0, axis=0)
# 输出:array([[4, 5, 6],[7, 8, 9]])

# 删除第二列
np.delete(arr, 1, axis=1)
# 输出:array([[1, 3],[4, 6],[7, 9]])

三、删除数组中的多行或多列

当要删除多行或多列时,可以将需要删除的行或列的序号构成列表传入delete函数。

import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])

# 删除第1行和第2行
np.delete(arr, [0,1], axis=0)
# 输出:array([[7, 8, 9]])

# 删除第1列和第3列
np.delete(arr, [0,2], axis=1)
# 输出:array([[2],[5],[8]])

四、删除数组中满足条件的元素

在使用numpy.delete函数时,还可以通过传入条件数组,来选择要删除的元素。

import numpy as np
arr = np.array([1,2,3,4,5])

# 删除元素值为3的元素
np.delete(arr, np.where(arr==3))
# 输出:array([1, 2, 4, 5])

五、避免原数组被修改

当使用numpy.delete函数时,原数组可能会被修改。这时,可以将copy参数设为True,来避免原数组被修改。

import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])

# 删除第2行时,原数组不受影响
np.delete(arr, 1, axis=0, copy=True)
# 输出:array([[1, 2, 3],[7, 8, 9]])

六、应用场景

numpy.delete函数在矩阵运算中,常常用于删除无用的行或列,从而帮助运算更加高效。

同时,它也适用于实际任务中的数据预处理,可以使用delete函数,删除数据集中的一些无用信息,提高模型训练的效率。