📜  Python中的numpy.delete

📅  最后修改于: 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]