Wenn Sie überprüfen möchten, ob zwei Arrays dasselbe shapeUND haben elements, sollten Sie diese verwenden, np.array_equalda dies die in der Dokumentation empfohlene Methode ist.
In Bezug auf die Leistung erwarten Sie nicht, dass eine Gleichstellungsprüfung eine andere schlägt, da nicht viel Raum für Optimierungen besteht comparing two elements. Nur um der Sache willen habe ich noch einige Tests gemacht.
import numpy as np
import timeit
A = np.zeros((300, 300, 3))
B = np.zeros((300, 300, 3))
C = np.ones((300, 300, 3))
timeit.timeit(stmt='(A==B).all()', setup='from __main__ import A, B', number=10**5)
timeit.timeit(stmt='np.array_equal(A, B)', setup='from __main__ import A, B, np', number=10**5)
timeit.timeit(stmt='np.array_equiv(A, B)', setup='from __main__ import A, B, np', number=10**5)
> 51.5094
> 52.555
> 52.761
So ziemlich gleich, dass man nicht über die Geschwindigkeit sprechen muss.
Das (A==B).all()verhält sich so ziemlich wie das folgende Code-Snippet:
x = [1,2,3]
y = [1,2,3]
print all([x[i]==y[i] for i in range(len(x))])
> True
np.array_equalIME.(A==B).all()wird abstürzen , wenn A und B unterschiedliche Längen aufweisen . Ab Nummer 1.10 löst == in diesem Fall eine Verfallswarnung aus .