Hoe twee numpy-arrays te vergelijken: met voorbeelden
U kunt de volgende methoden gebruiken om de waarden van twee NumPy-arrays te vergelijken:
Methode 1: Test of twee NumPy-arrays gelijk zijn op elementniveau
#test if array A and array B are element-wise equal n.p. array_equal (A,B)
Methode 2: Test of twee NumPy-arrays gelijk zijn op elementniveau (binnen een tolerantie)
#test if array A and array B are element-wise equal (within absolute tolerance of 2) n.p. allclose (A, B, atol= 2 )
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Voorbeeld 1: Test of twee NumPy-arrays gelijk zijn op elementniveau
De volgende code laat zien hoe u de functie array_equal() gebruikt om te testen of twee NumPy-arrays gelijk zijn op elementniveau:
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
De functie retourneert True omdat beide NumPy-arrays dezelfde lengte hebben met dezelfde waarden op dezelfde posities.
De functie retourneert echter False als de twee NumPy-arrays dezelfde waarden hebben, maar in verschillende posities:
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
Voorbeeld 2: Test of twee NumPy-arrays gelijk zijn op elementniveau (binnen tolerantie)
De volgende code laat zien hoe u de functie allclose() kunt gebruiken om te testen of twee NumPy-arrays gelijk zijn op elementniveau binnen een tolerantiewaarde van 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
De functie retourneert True omdat de overeenkomende elementen tussen elke NumPy-array allemaal binnen 2 van elkaar liggen.
We zien bijvoorbeeld dat de elementen op de derde en vierde positie van elke array verschillend zijn, maar omdat elk paar 2 waarden uit elkaar ligt, retourneert de functie waar.
Als we echter het argument voor absolute tolerantie (atol) wijzigen in 1 , retourneert de functie 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
De functie retourneert False omdat de corresponderende elementen op de derde positie van elke NumPy-array geen 1s van elkaar verwijderd zijn.
Opmerking : raadpleeg de NumPy-documentatie voor een volledige uitleg van de functies array_equal en allclose .
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in NumPy kunt uitvoeren:
Hoe elementen in een NumPy-array te verplaatsen
Hoe elementvoorvallen in NumPy te tellen
Hoe de modus van de NumPy-array te berekenen