Zwei Arrays in Python vergleichen
-
Vergleichen Sie zwei Arrays in Python mit der Methode
numpy.array_equal()
-
Vergleichen Sie zwei Arrays in Python mit der Methode
numpy.allclose()
-
Vergleichen Sie zwei Arrays in Python mit der Methode
numpy.array_equiv()
-
Vergleichen Sie zwei Arrays in Python mit dem Operator
==
und der Methodenumpy.all()
In diesem Tutorial werden verschiedene Methoden untersucht, um zwei Arrays in Python zu vergleichen und zu überprüfen, ob sie gleich sind oder nicht. Die beiden Arrays sind nur dann gleich, wenn ihre Abmessungen und Werte gleich sind. Wenn die beiden Arrays dieselben Werte haben, ihre Reihenfolge jedoch nicht identisch ist, werden die Arrays nicht als gleich angesehen.
Mit den folgenden Methoden können wir überprüfen, ob die beiden Arrays in Python gleich sind oder nicht:
Vergleichen Sie zwei Arrays in Python mit der Methode numpy.array_equal()
Das numpy.array_equal(a1, a2, equal_nan=False)
nimmt zwei Arrays a1
und a2
als Eingabe und gibt True
zurück, wenn beide Arrays dieselbe Form und dieselben Elemente haben, und die Methode gibt ansonsten False
zurück . Der Standardwert des Schlüsselwortarguments equal_nan=
ist False
und muss auf True
gesetzt werden, wenn die Methode zwei NaN
-Werte als gleich betrachten soll.
Der folgende Beispielcode zeigt, wie mit der Methode numpy.array_equal()
zwei Arrays in Python verglichen werden.
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))
Ausgabe:
True
False
Vergleichen Sie zwei Arrays in Python mit der Methode numpy.allclose()
Die Methode numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False)
verwendet die Arrays a1
und a2
als Eingabe und gibt True
zurück, wenn jedes Element von a1
gleich dem entsprechenden Element von a2
oder ihre Differenz liegt innerhalb des Toleranzwertes.
Der Toleranzwert wird mit den Argumenten a2
, rtol
und atol
berechnet.
atol + rtol * absolute(a2)
Die Methode numpy.allclose()
ist nützlich bei Berechnungen, bei denen überprüft werden soll, ob die endgültigen Arrays dem erwarteten Array entsprechen oder nicht. Mit der Methode numpy.allclose()
können wir zwei Arrays in Python folgendermaßen vergleichen:
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))
Ausgabe:
False
True
Wie im obigen Beispielcode gezeigt, wird die Differenz von 0.00001
zwischen den beiden Werten standardmäßig ignoriert. Wir können die Werte von atol
und rtol
ändern, um den Toleranzwert zu erhöhen.
Vergleichen Sie zwei Arrays in Python mit der Methode numpy.array_equiv()
Die Methode numpy.array_equiv(a1, a2)
verwendet die Arrays a1
und a2
als Eingabe und gibt True
zurück, wenn die Form und die Elemente beider Arrays gleich sind. Andernfalls wird False
zurückgegeben.
Wir können beide Arrays an die Methode numpy.array_equiv()
übergeben, um sie in Python zu vergleichen. Der folgende Beispielcode zeigt, wie mit der Methode numpy.array_equal()
überprüft wird, ob die beiden Arrays in Python gleich sind.
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))
Ausgabe:
False
False
Vergleichen Sie zwei Arrays in Python mit dem Operator ==
und der Methode numpy.all()
Der Operator ==
gibt bei Verwendung mit den Arrays das Array mit der Form zurück, die beiden Arrays entspricht. Das zurückgegebene Array enthält an einem Index True
, wenn die Elemente beider Arrays in diesem Index gleich sind, und das Array wird es ansonsten tun enthalten False
an diesem Index.
Da wir die beiden Arrays anstelle jedes Elements vergleichen möchten, können wir die Methode numpy.all()
mit dem Operator ==
verwenden. Die Methode numpy.all()
gibt True
zurück, wenn alle Elemente des Eingabearrays entlang der angegebenen Achse True
sind. Andernfalls wird False
zurückgegeben.
True
zurück, wenn beide Arrays leer sind oder ein Array eine Länge von 1
hat. Außerdem wird ein Fehler ausgelöst, wenn die Form beider Arrays nicht identisch ist. Deshalb müssen die oben genannten Methoden bevorzugt werden.Der folgende Beispielcode zeigt, wie Sie mit dem Operator ==
und der Methode numpy.all()
die beiden Arrays in Python vergleichen.
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())
Ausgabe:
False
False