Comparer deux tableaux en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Comparez deux tableaux en Python en utilisant la méthode numpy.array_equal()
  2. Comparez deux tableaux en Python en utilisant la méthode numpy.allclose()
  3. Comparez deux tableaux en Python en utilisant la méthode numpy.array_equiv()
  4. Comparez deux tableaux en Python à l’aide de l’opérateur == et de la méthode numpy.all()
Comparer deux tableaux en Python

Dans ce tutoriel, nous examinerons différentes méthodes pour comparer deux tableaux en Python et vérifier s’ils sont égaux ou non. Les deux tableaux ne seront égaux que lorsque leurs dimensions et leurs valeurs sont identiques. Si les deux tableaux ont les mêmes valeurs, mais que leur séquence n’est pas la même, alors les tableaux ne seront pas considérés comme égaux.

Nous pouvons vérifier si les deux tableaux sont égaux ou non en Python en utilisant les méthodes suivantes:

Comparez deux tableaux en Python en utilisant la méthode numpy.array_equal()

Le numpy.array_equal(a1, a2, equal_nan=False) prend deux tableaux a1 et a2 comme entrée et renvoie True si les deux tableaux ont la même forme et les mêmes éléments, et la méthode renvoie False sinon . La valeur par défaut de l’argument mot-clé equal_nan= est False et doit être définie sur True si nous voulons que la méthode considère deux valeurs NaN comme égales.

L’exemple de code ci-dessous montre comment utiliser la méthode numpy.array_equal() pour comparer deux tableaux en Python.

import numpy as np

a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
print(np.array_equal(a1, a1))
print(np.array_equal(a1, a2))

Production:

True
False

Comparez deux tableaux en Python en utilisant la méthode numpy.allclose()

La méthode numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False) prend en entrée le tableau a1 et a2 et renvoie True si chaque élément de a1 est égal à l’élément correspondant de a2, ou leur différence est comprise dans la valeur de tolérance.

La valeur de tolérance est calculée à l’aide des arguments a2, rtol et atol.

atol + rtol * absolute(a2)

La méthode numpy.allclose() est utile dans les calculs où l’on veut vérifier si les tableaux finaux sont égaux au tableau attendu ou non. Nous pouvons utiliser la méthode numpy.allclose() pour comparer deux tableaux en Python de la manière suivante:

import numpy as np

a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.allclose(a1, a2))
print(np.allclose(a3, a2))

Production:

False
True

Comme le montre l’exemple de code ci-dessus, la différence de 0.00001 entre les deux valeurs est ignorée par défaut. Nous pouvons changer les valeurs de atol et rtol pour augmenter la valeur de tolérance.

Comparez deux tableaux en Python en utilisant la méthode numpy.array_equiv()

La méthode numpy.array_equiv(a1, a2) prend le tableau a1 et a2 comme entrée et renvoie True si la forme et les éléments des deux tableaux sont identiques; sinon, renvoie False.

On peut passer les deux tableaux à la méthode numpy.array_equiv() pour les comparer en Python. L’exemple de code ci-dessous montre comment utiliser la méthode numpy.array_equal() pour vérifier si les deux tableaux sont égaux en Python.

import numpy as np

a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.array_equiv(a1, a2))
print(np.array_equiv(a3, a2))

Production:

False
False

Comparez deux tableaux en Python à l’aide de l’opérateur == et de la méthode numpy.all()

L’opérateur == lorsqu’il est utilisé avec les tableaux, retourne le tableau avec la forme équivalente aux deux tableaux, le tableau retourné contient True à un index si les éléments des deux tableaux sont égaux dans cet index, et le tableau le sera autrement contiennent False à cet index.

Comme nous voulons comparer les deux tableaux au lieu de chaque élément, nous pouvons utiliser la méthode numpy.all() avec l’opérateur ==. La méthode numpy.all() renvoie True si tous les éléments du tableau d’entrée le long de l’axe donné sont True; sinon, il renvoie False.

Noter
Cette méthode renvoie True si les deux tableaux sont vides ou si un tableau a une longueur de 1. Et soulèvera également une erreur si la forme des deux tableaux n’est pas la même; c’est pourquoi les méthodes mentionnées ci-dessus doivent être préférées.

L’exemple de code ci-dessous montre comment utiliser l’opérateur == et la méthode numpy.all() pour comparer les deux tableaux en Python.

import numpy as np

a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])

print((a1 == a2).all())
print((a3 == a2).all())

Production:

False
False