📅  最后修改于: 2020-06-08 00:12:45             🧑  作者: Mango
numpy.delete(array, object, axis = None) : 返回一个新数组,其中删除了带有提及的轴的子数组。
参数:
array:[array_like]输入数组。
object:[int,ints数组]要删除的子数组
axis:要删除子数组的轴。默认情况下,它将对象应用于
应用于扁平数组
返回:
沿着给定轴,按照提到的对象删除带有子数组的数组。
代码1:从一维数组中删除
# Python程序说明numpy.delete()
import numpy as geek
# 处理一维
arr = geek.arange(5)
print("arr : \n", arr)
print("形状 : ", arr.shape)
# 从一维数组中删除
object = 2
a = geek.delete(arr, object)
print("\n重复arr 2次 : \n", a)
print("形状 : ", a.shape)
object = [1, 2]
b = geek.delete(arr, object)
print("\n重复arr 3次 : \n", b)
print("形状 : ", a.shape)
输出:
arr:
[0 1 2 3 4]
重复arr 2次:
[0 0 1 1 2 2 3 3 4 4]
形状:(10,)
重复arr 3次:
[0 0 0 ...,4 4 4]
形状:(15,)
代码2:
# Python程序说明numpy.delete()
import numpy as geek
#Working on 1D
arr = geek.arange(12).reshape(3, 4)
print("arr : \n", arr)
print("形状 : ", arr.shape)
# 从2D数组删除
a = geek.delete(arr, 1, 0)
'''
[[ 0 1 2 3]
[ 4 5 6 7] -> deleted
[ 8 9 10 11]]
'''
print("\n删除arr 2次 : \n", a)
print("形状 : ", a.shape)
# 从2D数组删除
a = geek.delete(arr, 1, 1)
'''
[[ 0 1* 2 3]
[ 4 5* 6 7]
[ 8 9* 10 11]]
^
Deletion
'''
print("\n删除arr 2次 : \n", a)
print("形状 : ", a.shape)
输出:
arr:
[[0 1 2 3]
[4 5 6 7]
[8 9 10 11]]
形状:(3,4)
删除arr 2次:
[[0 1 2 3]
[8 9 10 11]]
形状: (2,4)
删除arr 2次:
[[0 2 3]
[4 6 7]
[8 10 11]]
形状:(3,3)
删除arr 3次:
[0 3 4 5 6 7 8 9 10 11 ]
形状:(3,3)
代码3:使用布尔掩码执行删除
# Python程式说明numpy.delete()
import numpy as geek
arr = geek.arange(5)
print("原始数组 : ", arr)
mask = geek.ones(len(arr), dtype=bool)
# 等效于np.delete(arr,[0,2,4],axis = 0)
mask[[0,2]] = False
print("\n掩码设置为 : ", mask)
result = arr[mask,...]
print("\n使用布尔掩码删除 : ", result)
输出:
原始数组:[0 1 2 3 4]
掩码设置为:[False True False True True True]
使用布尔掩码删除:[1 3 4]