當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.array.unique用法及代碼示例

用法:

dask.array.unique(ar, return_index=False, return_inverse=False, return_counts=False)

查找數組的唯一元素。

此文檔字符串是從 numpy.unique 複製的。

可能存在與 Dask 版本的一些不一致之處。

返回數組的排序唯一元素。除了獨特的元素外,還有三個可選輸出:

  • 給出唯一值的輸入數組的索引
  • 重建輸入數組的唯一數組的索引
  • 每個唯一值在輸入數組中出現的次數

參數

ararray_like

輸入數組。除非指定axis,否則如果它不是一維的,它將被展平。

return_index布爾型,可選

如果為 True,則還返回導致唯一數組的 ar 的索引(沿指定軸,如果提供,或在展平數組中)。

return_inverse布爾型,可選

如果為 True,還返回可用於重建 ar 的唯一數組的索引(對於指定的軸,如果提供)。

return_counts布爾型,可選

如果為 True,還返回每個唯一項目在 ar 中出現的次數。

axisint 或 None,可選(在 Dask 中不支持)

要操作的軸。如果沒有,ar 將被展平。如果是整數,則由給定軸索引的子數組將被展平並被視為具有給定軸維度的一維數組的元素,有關更多詳細信息,請參閱注釋。如果使用 axis kwarg,則不支持包含對象的對象數組或結構化數組。默認值為無。

返回

uniquendarray

排序後的唯一值。

unique_indicesndarray,可選

原始數組中第一次出現的唯一值的索引。僅在 return_index 為 True 時提供。

unique_inversendarray,可選

從唯一數組重建原始數組的索引。僅在 return_inverse 為 True 時提供。

unique_countsndarray,可選

每個唯一值在原始數組中出現的次數。僅在 return_counts 為 True 時提供。

注意

當指定軸時,由軸索引的子數組被排序。這是通過使指定的軸成為數組的第一個維度(將軸移動到第一個維度以保持其他軸的順序)然後按 C 順序展平子數組來完成的。然後將展平的子數組視為結構化類型,每個元素都給定一個標簽,其效果是我們最終得到一個結構化類型的一維數組,可以以與任何其他一維數組相同的方式處理。結果是展平的子數組從第一個元素開始按字典順序排序。

例子

>>> np.unique([1, 1, 2, 2, 3, 3])  
array([1, 2, 3])
>>> a = np.array([[1, 1], [2, 3]])  
>>> np.unique(a)  
array([1, 2, 3])

返回二維數組的唯一行

>>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]])  
>>> np.unique(a, axis=0)  
array([[1, 0, 0], [2, 3, 4]])

返回給出唯一值的原始數組的索引:

>>> a = np.array(['a', 'b', 'b', 'c', 'a'])  
>>> u, indices = np.unique(a, return_index=True)  
>>> u  
array(['a', 'b', 'c'], dtype='<U1')
>>> indices  
array([0, 1, 3])
>>> a[indices]  
array(['a', 'b', 'c'], dtype='<U1')

從唯一值和逆重構輸入數組:

>>> a = np.array([1, 2, 6, 4, 2, 3, 2])  
>>> u, indices = np.unique(a, return_inverse=True)  
>>> u  
array([1, 2, 3, 4, 6])
>>> indices  
array([0, 1, 4, 3, 1, 2, 1])
>>> u[indices]  
array([1, 2, 6, 4, 2, 3, 2])

從唯一值和計數重構輸入值:

>>> a = np.array([1, 2, 6, 4, 2, 3, 2])  
>>> values, counts = np.unique(a, return_counts=True)  
>>> values  
array([1, 2, 3, 4, 6])
>>> counts  
array([1, 3, 1, 1, 1])
>>> np.repeat(values, counts)  
array([1, 2, 2, 2, 3, 4, 6])    # original order not preserved

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.unique。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。