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


Python numpy.unique()用法及代碼示例

Python 的 numpy 模塊提供了在 numpy 數組中查找唯一元素的函數。 numpy.unique() 函數查找數組的唯一元素並將這些唯一元素作為排序數組返回。除了獨特的元素外,還有一些可選的輸出,如下所示:

  • 輸出可以是給出唯一值的輸入數組的索引
  • 輸出可以是重構輸入數組的唯一數組的索引
  • 輸出可以是每個唯一值在輸入數組中出現的次數的數組。

用法

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

參數

這些是 numpy.mean() 函數中的以下參數:

a:數組

此參數定義包含需要其唯一值的元素的源數組。如果不是一維數組,數組將被展平。

Return_index:bool(可選)

如果此參數設置為 True,該函數將返回輸入數組的索引(沿著指定的軸,如果提供或在扁平數組中),這將導致唯一數組。

return_inverse:bool(可選)

如果此參數設置為 True,該函數還將返回輸入數組的索引(沿著指定的軸,如果提供或在扁平數組中),可用於重建輸入數組。

Return_counts:bool(可選)

如果此參數設置為 True,該函數將返回輸入數組 'a' 中每個唯一項出現的次數。

軸:整數或無(可選)

此參數定義要操作的軸。如果未設置此參數,則數組 'a' 將被展平。如果此參數是整數,則由給定軸索引的子數組將被展平並被視為具有給定軸維度的一維數組的元素。如果使用軸 'kwarg',則不支持結構化數組或包含對象的對象數組。

返回

此函數返回四種類型的輸出,如下所示:

唯一的:ndarray

在此輸出中,將顯示包含排序的唯一值的 ndarray。

unique_indices:ndarray(可選)

在此輸出中,將顯示一個 ndarray,其中包含原始數組中第一次出現的唯一值的索引。僅當 return_index 為 True 時才提供此輸出。

unique_inverse:ndarray(可選)

在此輸出中,將顯示一個 ndarray,其中包含用於從唯一數組重建原始數組的索引。僅當 return_inverse 為 True 時才提供此輸出。

unique_counts:ndarray(可選)

在此輸出中,將顯示一個 ndarray,其中包含每個唯一值在原始數組中出現的次數。僅當 return_counts 為 True 時才提供此輸出。

範例1:

import numpy as np
a=np.unique([1,2,3,4,3,6,2,4])
a

輸出:

array([1, 2, 3, 4, 6]) 

在上麵的代碼中

  • 我們已經導入了別名為 np.
  • 我們已經聲明了變量 'a' 並分配了 np.unique() 函數的返回值。
  • 我們已經在函數中傳遞了元素的數量。
  • 最後,我們嘗試打印 'a' 的值。

在輸出中,顯示了一個 ndarray,其中包含唯一元素。

範例2:

a=np.array([[1,2,2,3,9],[1,4,3,5,8]])
a
b=np.unique(a)
b

輸出:

array([[1, 2, 2, 3, 9],
       	[1, 4, 3, 5, 8]])
array([1, 2, 3, 4, 5, 8, 9])

範例3:

import numpy as np
a = np.array([[1, 1, 0], [1, 1, 0], [2, 3, 4],[5, 9, 8],[2, 3, 4]])
a
b=np.unique(a, axis=0)
b

輸出:

array([[1, 1, 0],
       	[1, 1, 0],
       	[2, 3, 4],
       	[5, 9, 8],
       	[2, 3, 4]])
array([[1, 1, 0],
       	[2, 3, 4],
       	[5, 9, 8]])

在上麵的代碼中

  • 我們已經導入了別名為 np.
  • 我們創建了一個多維數組 'a'。
  • 我們已經聲明了變量 'b' 並分配了 np.unique() 函數的返回值。
  • 我們在函數中傳遞了多維數組 'a' 和軸為 0。
  • 最後,我們嘗試打印 'b' 的值。

在輸出中,顯示了一個 ndarray,其中包含源數組 'a' 的唯一行。

範例4:

import numpy as np
a = np.array([[1, 1, 0], [1, 1, 0], [2, 2, 4],[5, 5, 8],[2, 2, 4]])
a
b=np.unique(a, axis=1)
b

輸出:

array([[1, 1, 0],
       	[1, 1, 0],
       	[2, 2, 4],
       	[5, 5, 8],
       	[2, 2, 4]])
array([[0, 1],
       	[0, 1],
       	[4, 2],
       	[8, 5],
       	[4, 2]])

注意:當我們將軸設置為 1 時,此函數將返回源數組中的唯一列。

示例 5:使用 return_index

import numpy as np
a = np.array(['d', 'b', 'b', 'z', 'a'])
result, indices=np.unique(a,return_index=True)
result
indices
a[indices]

輸出:

array(['a', 'b', 'd', 'z'], dtype='|S1')
array([4, 1, 0, 3], dtype=int64)
array(['a', 'b', 'd', 'z'], dtype='|S1')

在上麵的代碼中

  • 我們已經導入了別名為 np.
  • 我們創建了一個數組 'a'。
  • 我們已經聲明了變量 'result' 和 'indices' 並分配了 np.unique() 函數的返回值。
  • 我們已經傳遞了數組 'a' 並在函數中將 return_index 設置為 True。
  • 最後,我們嘗試打印 'result'、'indices' 和表示索引 ('a [indices]') 的數組元素的值。

在輸出中,顯示了一個 ndarray,其中包含給出唯一值的原始數組的索引。

示例 6:使用 return_inverse

我們可以通過以下方式從唯一值重建輸入數組:

import numpy as np
a = np.array([1, 2, 6, 4, 5, 3, 2])
result, indices=np.unique(a,return_inverse=True)
result
indices
a[indices]

輸出:

array([1, 2, 3, 4, 5, 6])
array([0, 1, 5, 3, 4, 2, 1], dtype=int64)
array([1, 2, 3, 4, 5, 6, 2])




相關用法


注:本文由純淨天空篩選整理自 numpy.unique() in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。