np.unique()官方文档分析以及举例
1.1 官方文档及解读
numpy.unique
语法:numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)
作用:找到array中不重复(独一无二)的元素
返回值:默认返回不重复元素的sorted
排好序的从小到大的数组。可选的返回值有:
- 输入数组提供不重复值(unique)元素的索引下标(如果有多个返回第一个)
- 利用unique数组重构原有的input数组所需要的的索引下标
- 该unique元素在input数组中的出现次数,相当于count
Parameter
-
ar
:array like
输入的数组,除非特别指定axis
,数组将被展平为1-D形式进行处理。 -
return_index
: bool, optional
如果为True,返回输入数组提供不重复值(unique)元素的索引下标(如果有多个返回第一个) -
return_inverse
: bool, optional
如果为True,返回利用unique数组重构原有的input数组所需要的的索引下标 -
axis
: int or None, optional
进行操作的维度。如果为None,数组将被展平作为一维数组处理,如果指定了axis,则以该维索引构成的子数组作为元素,将整个数组视为一维数组进行处理。如果axis
被使用,则不支持Object Array
以及structured arrays
。
Returns
-
unique
: ndarray
排好序(从小到大)的unique值 -
unique_indices
: ndarray, optional
unique数组中对应位置的value值第一次在input数组中出现的下标值。当return_index = True
时返回。 -
unique_inverse
: ndarray, optional
利用unique数组重构源输入input数组所需要的索引下标。当return_inverse = True
的时候返回。 -
unique_count
: ndarray, optional 每个unique values
在原数组中出现的次数,当return_counts=True
时返回。
NOTE
当axis被指定时,subarrays
按照指定轴的维度索引。该操作通过将specified axis
挪到数组的第一维,然后再将subarrays
展开。被展平的subarrays
被视为一个结构化类型,我们就可以把以这个结构化类型将原数组视为一个1维数组。结果排序是按结构化元素的第一个元素(类似字典序)排列的。
1.2 Examples
补一个return_counts:
>>> a = np.array([1,1,2,2,2,3,8,5,4])
>>> x,x2 = np.unique(a,return_counts = True)
x: [1,2,3,4,5,8]
x2:[2,3,1,1,1,1,dtype=int64]