np.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(a)
u = np.unique(a)
print(u)
# 新列表的元素在旧列表的位置
u, indices = np.unique(a, return_index=True)
print(u) # 列表
print(indices) # 下标
# 旧列表的元素在新列表的位置
u, indices = np.unique(a, return_inverse=True)
print(u)
print(indices)
# 使用下标重构原数组
print(u[indices])
# 去重元素的重复数量
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]
新列表的元素在旧列表的位置:
[2 5 6 7 8 9]
[1 0 2 4 7 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]