Confronta due array in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Confronta due array in Python usando il metodo numpy.array_equal()
  2. Confronta due array in Python usando il metodo numpy.allclose()
  3. Confronta due array in Python usando il metodo numpy.array_equiv()
  4. Confronta due array in Python usando l’operatore == e il metodo numpy.all()
Confronta due array in Python

In questo tutorial, esamineremo vari metodi per confrontare due array in Python e verificare se sono uguali o meno. I due array saranno uguali solo quando le loro dimensioni e valori sono gli stessi. Se i due array hanno gli stessi valori, ma la loro sequenza non è la stessa, gli array non saranno considerati uguali.

Possiamo verificare se i due array sono uguali o meno in Python utilizzando i seguenti metodi:

Confronta due array in Python usando il metodo numpy.array_equal()

numpy.array_equal(a1, a2, equal_nan=False) accetta due array a1 e a2 come input e restituisce True se entrambi gli array hanno la stessa forma e gli stessi elementi, altrimenti il ​​metodo restituisce False . Il valore predefinito dell’argomento della parola chiave equal_nan= è False e deve essere impostato su True se vogliamo che il metodo consideri due valori NaN uguali.

Il codice di esempio seguente mostra come utilizzare il metodo numpy.array_equal() per confrontare due array in 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))

Produzione:

True
False

Confronta due array in Python usando il metodo numpy.allclose()

Il metodo numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False) accetta array a1 e a2 come input e restituisce True se ciascun elemento di a1 è uguale all’elemento corrispondente di a2 o la loro differenza è all’interno del valore di tolleranza.

Il valore della tolleranza viene calcolato utilizzando gli argomenti a2, rtol e atol.

atol + rtol * absolute(a2)

Il metodo numpy.allclose() è utile nei calcoli in cui vogliamo controllare se gli array finali sono uguali o meno all’array atteso. Possiamo usare il metodo numpy.allclose() per confrontare due array in Python nel modo seguente:

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

Produzione:

False
True

Come mostrato nel codice di esempio sopra, la differenza di 0.00001 tra i due valori viene ignorata per impostazione predefinita. Possiamo cambiare i valori di atol e rtol per aumentare il valore di tolleranza.

Confronta due array in Python usando il metodo numpy.array_equiv()

Il metodo numpy.array_equiv(a1, a2) accetta gli array a1 e a2 come input e restituisce True se la forma e gli elementi di entrambi gli array sono uguali; in caso contrario, restituisce False.

Possiamo passare entrambi gli array al metodo numpy.array_equiv() per confrontarli in Python. Il codice di esempio seguente mostra come utilizzare il metodo numpy.array_equal() per verificare se i due array sono uguali in 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))

Produzione:

False
False

Confronta due array in Python usando l’operatore == e il metodo numpy.all()

L’operatore == quando usato con gli array, restituisce l’array con la forma equivalente a entrambi gli array, l’array restituito contiene True in corrispondenza di un indice se gli elementi di entrambi gli array sono uguali in quell’indice, altrimenti l’array lo farà contengono False in quell’indice.

Dato che vogliamo confrontare i due array invece di ogni elemento, possiamo usare il metodo numpy.all() con l’operatore ==. Il metodo numpy.all() restituisce True se tutti gli elementi dell’array di input lungo l’asse dato sono True; in caso contrario, restituisce False.

Nota
Questo metodo restituisce True se entrambi gli array sono vuoti o un array ha una lunghezza di 1. Inoltre, genererà un errore se la forma di entrambi gli array non è la stessa; ecco perché i metodi sopra menzionati devono essere preferiti.

Il codice di esempio seguente mostra come utilizzare l’operatore == e il metodo numpy.all() per confrontare i due array in 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())

Produzione:

False
False