千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > np.delete详解

np.delete详解

来源:千锋教育
发布人:xqq
时间: 2023-11-21 08:23:28 1700526208

一、删除数组中的元素

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

tags: np.delete
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT