Zwei Arrays in Python vergleichen

Muhammad Waiz Khan 30 Januar 2023
  1. Vergleichen Sie zwei Arrays in Python mit der Methode numpy.array_equal()
  2. Vergleichen Sie zwei Arrays in Python mit der Methode numpy.allclose()
  3. Vergleichen Sie zwei Arrays in Python mit der Methode numpy.array_equiv()
  4. Vergleichen Sie zwei Arrays in Python mit dem Operator == und der Methode numpy.all()
Zwei Arrays in Python vergleichen

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.

Hinweis
Diese Methode gibt 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