Confronta due array in Python
-
Confronta due array in Python usando il metodo
numpy.array_equal()
-
Confronta due array in Python usando il metodo
numpy.allclose()
-
Confronta due array in Python usando il metodo
numpy.array_equiv()
-
Confronta due array in Python usando l’operatore
==
e il metodonumpy.all()
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
.
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