umpy.delete 函数返回从输入数组中删除指定子数组的新数组。 与 insert() 函数的情况一样,如果未提供轴参数,则输入数组将展开。

Numpy.delete(arr, obj, axis)

参数说明:

  • arr:输入数组

  • obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组

  • axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开

实例

import numpy as np a = np.arange(12).reshape(3,4) print ('第一个数组:')print (a)print ('\n') print ('未传递 Axis 参数。 在插入之前输入数组会被展开。')print (np.delete(a,5))print ('\n') print ('删除第二列:')print (np.delete(a,1,axis = 1))print ('\n') print ('包含从数组中删除的替代值的切片:')a = np.array([1,2,3,4,5,6,7,8,9,10])print (np.delete(a, np.s_[::2]))

输出结果为:

第一个数组:[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]未传递 Axis 参数。 在插入之前输入数组会被展开。[ 0  1  2  3  4  6  7  8  9 10 11]删除第二列:[[ 0  2  3]
 [ 4  6  7]
 [ 8 10 11]]包含从数组中删除的替代值的切片:[ 2  4  6  8 10]

numpy.unique

numpy.unique 函数用于去除数组中的重复元素。

numpy.unique(arr, return_index, return_inverse, return_counts)
  • arr:输入数组,如果不是一维数组则会展开

  • return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储

  • return_inverse:如果为true,返回旧列表元素在新列表中的位置(下标),并以列表形式储

  • return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数

实例

import numpy as np a = np.array([5,2,6,2,7,5,6,8,2,9]) print ('第一个数组:')print (a)print ('\n') print ('第一个数组的去重值:')u = np.unique(a)print (u)print ('\n') print ('去重数组的索引数组:')u,indices = np.unique(a, return_index = True)print (indices)print ('\n') print ('我们可以看到每个和原数组下标对应的数值:')print (a)print ('\n') print ('去重数组的下标:')u,indices = np.unique(a,return_inverse = True)print (u)print ('\n') print ('下标为:')print (indices)print ('\n') print ('使用下标重构原数组:')print (u[indices])print ('\n') print ('返回去重元素的重复数量:')u,indices = np.unique(a,return_counts = True)print (u)print (indices)

输出结果为:

第一个数组:[5 2 6 2 7 5 6 8 2 9]第一个数组的去重值:[2 5 6 7 8 9]去重数组的索引数组:[1 0 2 4 7 9]我们可以看到每个和原数组下标对应的数值:[5 2 6 2 7 5 6 8 2 9]去重数组的下标:[2 5 6 7 8 9]下标为:[1 0 2 0 3 1 2 4 0 5]使用下标重构原数组:[5 2 6 2 7 5 6 8 2 9]返回去重元素的重复数量:[2 5 6 7 8 9][3 2 2 1 1 1]