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]
posted @ 2021-08-20 14:44  做梦当财神  阅读(512)  评论(0编辑  收藏  举报