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])
//第一个数组:[5 2 6 2 7 5 6 8 2 9]
print ('第一个数组:')
print (a)
print ('\n')
//第一个数组的去重值:[2 5 6 7 8 9]
print ('第一个数组的去重值:')
u = np.unique(a)
print (u)
print ('\n')
//去重数组的索引数组:[1 0 2 4 7 9]
print ('去重数组的索引数组:')
u,indices = np.unique(a, return_index = True)
print (indices)
print ('\n')
//我们可以看到每个和原数组下标对应的数值:[5 2 6 2 7 5 6 8 2 9]
print ('我们可以看到每个和原数组下标对应的数值:')
print (a)
print ('\n')
//去重数组的下标:[2 5 6 7 8 9]
print ('去重数组的下标:')
u,indices = np.unique(a,return_inverse = True)
print (u)
print ('\n')
//下标为:[1 0 2 0 3 1 2 4 0 5]
print ('下标为:')
print (indices)
print ('\n')
//使用下标重构原数组:[5 2 6 2 7 5 6 8 2 9]
print ('使用下标重构原数组:')
print (u[indices])
print ('\n')
//返回去重元素的重复数量:
//[2 5 6 7 8 9]
//[3 2 2 1 1 1]
print ('返回去重元素的重复数量:')
u,indices = np.unique(a,return_counts = True)
print (u)
print (indices)
上述理解
旧列表:a→[5 2 6 2 7 5 6 8 2 9]
新列表:u→[2 5 6 7 8 9]
return_index: 新列表在旧列表中的位置,即u在a中的位置
return_inverse: 旧列表在新列表中的位置,即a在u中的位置
参考:https://www.runoob.com/numpy/numpy-array-manipulation.html#numpy_oparr6