Comment trouver les valeurs uniques dans une matrice avec numpy en python ?


Exemples de comment trouver les valeurs uniques dans une matrice avec numpy en python

Créer une matrice

Soit par exemple la matrice suivante

import numpy as np

A = np.random.randint(3, size=20)

print(A)

donne

[1 2 1 0 1 2 2 1 2 0 2 1 1 1 0 1 2 1 2 2]

Trouver les valeurs uniques dans la matrice

Pour trouver les valeurs uniques dans la matrice, une solution est d'utiliser la fonction numpy unique, exemple:

np.unique(A)

donne

array([0, 1, 2])

Trouver les valeurs uniques dans une matrice de 2 dimensions

Soit la matrice de dimensions (3,4) suivante

A = np.random.randint(10, size=(3,4))

print(A)

donne ici par exemple

[[9 8 6 7]
 [0 8 3 3]
 [0 5 9 1]]

Alors la fonction numpy unique:

np.unique(A)

donne dans ce cas

array([0, 1, 3, 5, 6, 7, 8, 9])

On peut aussi choisir l'axe

A = np.random.randint(2, size=(10,2))

print(A)

donne

[[1 0]
 [0 1]
 [1 1]
 [1 0]
 [1 0]
 [1 1]
 [0 0]
 [1 0]
 [0 1]
 [1 0]]
Out[13]:

et

np.unique(A, axis=0)

donne ici

array([[0, 0],
    [0, 1],
    [1, 0],
    [1, 1]])

Trouver les valeurs uniques et reconstruire la matrice initiale

Soit par exemple la matrice suivante

import numpy as np

A = np.array([-2,6,-7,8,9,-4,3])

print(A)

donne

[-2  6 -7  8  9 -4  3]

on peut alors obtenir les valeurs uniques et les indices associés pour pouvoir reconstruire la matrice comme ceci:

u_values, u_indices = np.unique(A, return_inverse=True)

print(u_values)

print(u_indices)

donne respectivement

[-7 -4 -2  3  6  8  9]

et

[2 4 0 5 6 1 3]

On peut alors reconstruire la matrice initial

print(u_values[u_indices])

[-2  6 -7  8  9 -4  3]

Références