Comment comparer deux tableaux NumPy : avec des exemples



Vous pouvez utiliser les méthodes suivantes pour comparer les valeurs de deux tableaux NumPy :

Méthode 1 : tester si deux tableaux NumPy sont égaux au niveau des éléments

#test if array A and array B are element-wise equal
np.array_equal(A,B)

Méthode 2 : tester si deux tableaux NumPy sont égaux au niveau des éléments (dans une tolérance)

#test if array A and array B are element-wise equal (within absolute tolerance of 2)
np.allclose(A, B, atol=2)

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : tester si deux tableaux NumPy sont égaux au niveau des éléments

Le code suivant montre comment utiliser la fonction array_equal() pour tester si deux tableaux NumPy sont égaux au niveau des éléments :

import numpy as np

#create two NumPy arrays
A = np.array([1, 4, 5, 7, 10])
B = np.array([1, 4, 5, 7, 10])

#test if arrays are element-wise equal
np.array_equal(A,B)

True

La fonction renvoie True puisque les deux tableaux NumPy ont la même longueur avec les mêmes valeurs aux mêmes positions.

Cependant, la fonction retournera False si les deux tableaux NumPy ont les mêmes valeurs mais dans des positions différentes :

import numpy as np

#create two NumPy arrays with same values but in different positions
A = np.array([1, 4, 5, 7, 10])
B = np.array([1, 4, 7, 5, 10])

#test if arrays are element-wise equal
np.array_equal(A,B)

False

Exemple 2 : tester si deux tableaux NumPy sont égaux au niveau des éléments (dans les limites de tolérance)

Le code suivant montre comment utiliser la fonction allclose() pour tester si deux tableaux NumPy sont égaux au niveau des éléments dans une valeur de tolérance de 2 :

import numpy as np

#create two NumPy arrays
A = np.array([1, 4, 5, 7, 10])
B = np.array([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 2)
np.allclose(A, B, atol=2)

True

La fonction renvoie True puisque les éléments correspondants entre chaque tableau NumPy sont tous à moins de 2 les uns des autres.

Par exemple, nous voyons que les éléments en troisième et quatrième positions de chaque tableau sont différents, mais comme chaque paire est à 2 valeurs l’une de l’autre, la fonction renvoie vrai.

Cependant, si nous changeons l’argument de tolérance absolue (atol) en 1 , alors la fonction retournera False :

import numpy as np

#create two NumPy arrays
A = np.array([1, 4, 5, 7, 10])
B = np.array([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 1)
np.allclose(A, B, atol=1)

False

La fonction renvoie False puisque les éléments correspondants en troisième position de chaque tableau NumPy ne sont pas à 1 les uns des autres.

Remarque : reportez-vous à la documentation NumPy pour trouver une explication complète des fonctions array_equal et allclose .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans NumPy :

Comment déplacer des éléments dans un tableau NumPy
Comment compter les occurrences d’éléments dans NumPy
Comment calculer le mode du tableau NumPy

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *