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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert