logo

numpy.unique() en Python

Le module numpy de Python fournit une fonction permettant de rechercher des éléments uniques dans un tableau numpy. La fonction numpy.unique() recherche les éléments uniques d'un tableau et renvoie ces éléments uniques sous forme de tableau trié. Outre les éléments uniques, il existe également quelques sorties facultatives, qui sont les suivantes :

  • La sortie peut être les indices du tableau d'entrée qui donnent les valeurs uniques
  • La sortie peut être les indices du tableau unique qui reconstruisent le tableau d'entrée
  • La sortie peut être un tableau du nombre de fois où chaque valeur unique apparaît dans le tableau d'entrée.

Syntaxe

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

Paramètres

Ce sont les paramètres suivants dans la fonction numpy.mean() :

a : array_like

Ce paramètre définit le tableau source contenant les éléments dont les valeurs uniques sont souhaitées. Le tableau sera aplati s'il ne s'agit pas d'un tableau 1D.

Return_index : bool (facultatif)

mot-clé statique en Java

Si ce paramètre est défini sur True, la fonction renverra les indices du tableau d'entrée (le long de l'axe spécifié s'il est fourni ou dans le tableau aplati), ce qui donnera un tableau unique.

return_inverse : bool (facultatif)

Si ce paramètre est défini sur True, la fonction renverra également les indices du tableau d'entrée (le long de l'axe spécifié s'il est fourni ou dans le tableau aplati), qui peuvent être utilisés pour reconstruire le tableau d'entrée.

Return_counts : bool (facultatif)

Si ce paramètre est défini sur True, la fonction renverra le nombre de fois où chaque élément unique est apparu dans le tableau d'entrée « a ».

axe : int ou Aucun (facultatif)

Ce paramètre définit l'axe sur lequel opérer. Si ce paramètre n'est pas défini, alors le tableau « a » sera aplati. Si ce paramètre est un entier, alors les sous-tableaux indexés par l'axe donné seront aplatis et traités comme un élément d'un tableau 1D avec la dimension de l'axe donné. Les tableaux structurés ou les tableaux d'objets contenant des objets ne sont pas pris en charge si l'axe « kwarg » est utilisé.

Retour

Cette fonction renvoie quatre types de sorties qui sont les suivants :

unique : ndarray

la taille de mon écran

Dans cette sortie, un ndarray sera affiché contenant des valeurs uniques triées.

unique_indices : ndarray (facultatif)

Dans cette sortie, un ndarray sera affiché contenant les indices des premières occurrences des valeurs uniques dans le tableau d'origine. Cette sortie n'est fournie que si return_index est True.

unique_inverse : ndarray (facultatif)

Dans cette sortie, un ndarray sera affiché contenant les indices permettant de reconstruire le tableau d'origine à partir du tableau unique. Cette sortie n'est fournie que si return_inverse est True.

unique_counts : ndarray (facultatif)

Dans cette sortie, un ndarray sera affiché contenant le nombre de fois où chacune des valeurs uniques apparaît dans le tableau d'origine. Cette sortie n'est fournie que si return_counts est True.

classe abstraite vs interface

Exemple 1:

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

Sortir:

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

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons déclaré la variable 'a' et attribué la valeur renvoyée par la fonction np.unique().
  • Nous avons passé le nombre d'éléments dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de « a ».

Dans la sortie, un ndarray a été affiché, qui contient des éléments uniques.

Exemple 2 :

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

Sortir:

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

Exemple 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 

Sortir:

 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]]) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau multidimensionnel 'a'.
  • Nous avons déclaré la variable 'b' et attribué la valeur renvoyée par la fonction np.unique().
  • Nous avons transmis le tableau multidimensionnel « a » et l'axe à 0 dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de « b ».

Dans la sortie, un ndarray a été affiché qui contient des lignes uniques du tableau source « a ».

Exemple 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 

Sortir:

 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]]) 

Remarque : lorsque nous définissons l'axe sur 1, cette fonction renvoie les colonnes uniques du tableau source.

Exemple 5 : utilisez 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] 

Sortir:

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

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 'a'.
  • Nous avons déclaré la variable « résultat » et « indices » et attribué la valeur renvoyée par la fonction np.unique().
  • Nous avons passé le tableau 'a' et défini return_index sur True dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur des éléments 'result', 'indices' et du tableau, qui indique les indices('a [indices]').

Dans la sortie, un ndarray a été affiché qui contient les indices du tableau d'origine qui donnent des valeurs uniques.

Exemple 6 : utilisez return_inverse

Nous pouvons reconstruire le tableau d'entrée à partir des valeurs uniques de la manière suivante :

 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] 

Sortir:

 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])