NumPy 函数

NumPy unique() 函数查找数组的唯一元素并返回数组的排序后的唯一元素。除了唯一元素之外,还有三个可选输出:

  • 给出唯一值的输入数组的索引
  • 重构输入的唯一数组的索引array
  • 每个唯一值在输入数组中出现的次数

语法

numpy.unique(ar, return_index=False, 
             return_inverse=False, 
             return_counts=False, 
             axis=None) 

参数

ar必填。 指定输入数组(array_like)。除非指定了 axis,否则如果它还不是一维的,则将被展平。
return_index可选。 如果为 True,还返回产生唯一数组的 ar 索引(沿着指定轴(如果提供)或在展平数组中)。
return_inverse可选。 如果为 True,还返回可用于重建 ar 的唯一数组的索引(对于指定轴,如果提供)。
return_counts可选。 如果为 True,还返回每个唯一项目在 ar 中出现的次数。
axis可选。 指定要操作的轴。如果没有,ar将被展平。如果是整数,则由给定轴索引的子数组将被展平并视为具有给定轴维度的一维数组的元素。

返回值

返回排序后的唯一值。除此之外:

  • 如果 return_index 为 True,还返回原始数组中唯一值第一次出现的索引。
  • 如果return_inverse 为 True,还返回索引以从唯一数组重建原始数组。
  • 如果 return_counts 为 True,还返回每个索引的次数原始数组中出现唯一值。

示例:

在下面的示例中,unique() 函数用于唯一的两个给定数组。

import numpy as np

Arr = np.array([1, 2, 6, 4, 2, 3, 2])
print("原始数组:")
print(Arr)

#获取唯一值
u = np.unique(Arr)
print("\n唯一值为:")
print(u)

#获取第一次出现的索引
#的唯一值
u, indices = np.unique(Arr, return_index=True)
print("\n唯一值第一次出现的索引:")
print(indices)

#获取索引来重建原始数据
#array 来自唯一数组
u, indices = np.unique(Arr, return_inverse=True)
print("\nIndices to reconstruct the")
print("original array from unique array:")
print(indices)
print("\n重建原始数组:")
print(u[indices])

#获取原始数组中唯一值的计数
u, indices = np.unique(Arr, return_counts=True)
print("\n原始数组中唯一值的计数:")
print(indices) 

上述代码的输出将是:

原始数组:
[1 2 6 4 2 3 2]

唯一值为:
[1 2 3 4 6]

唯一值第一次出现的索引:
[0 1 5 3 2]

Indices to reconstruct the
original array from unique array:
[0 1 4 3 1 2 1]

重建原始数组:
[1 2 6 4 2 3 2]

原始数组中唯一值的计数:
[1 3 1 1 1]