Come confrontare due array numpy: con esempi
È possibile utilizzare i seguenti metodi per confrontare i valori di due array NumPy:
Metodo 1: verifica se due array NumPy sono uguali a livello di elemento
#test if array A and array B are element-wise equal n.p. array_equal (A,B)
Metodo 2: verifica se due array NumPy sono uguali a livello di elemento (entro una tolleranza)
#test if array A and array B are element-wise equal (within absolute tolerance of 2) n.p. allclose (A, B, atol= 2 )
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: verifica se due array NumPy sono uguali a livello di elemento
Il codice seguente mostra come utilizzare la funzione array_equal() per verificare se due array NumPy sono uguali a livello di elemento:
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 n.p. array_equal (A,B) True
La funzione restituisce True poiché entrambi gli array NumPy hanno la stessa lunghezza con gli stessi valori nelle stesse posizioni.
Tuttavia, la funzione restituirà False se i due array NumPy hanno gli stessi valori ma in posizioni diverse:
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 n.p. array_equal (A,B) False
Esempio 2: verifica se due array NumPy sono uguali a livello di elemento (entro la tolleranza)
Il codice seguente mostra come utilizzare la funzione allclose() per verificare se due array NumPy sono uguali a livello di elemento entro un valore di tolleranza pari a 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) n.p. allclose (A, B, atol= 2 ) True
La funzione restituisce True poiché gli elementi corrispondenti tra ciascun array NumPy sono tutti entro 2 l’uno dall’altro.
Ad esempio, vediamo che gli elementi nella terza e quarta posizione di ciascun array sono diversi, ma poiché ogni coppia è composta da 2 valori a parte, la funzione restituisce true.
Tuttavia, se modifichiamo l’argomento della tolleranza assoluta (atol) in 1 , la funzione restituirà 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) n.p. allclose (A, B, atol= 1 ) False
La funzione restituisce False poiché gli elementi corrispondenti nella terza posizione di ciascun array NumPy non sono distanti 1 s l’uno dall’altro.
Nota : fare riferimento alla documentazione di NumPy per una spiegazione completa delle funzioni array_equal e allclose .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in NumPy:
Come spostare gli elementi in un array NumPy
Come contare le occorrenze degli elementi in NumPy
Come calcolare la modalità dell’array NumPy