Se você deseja verificar se duas matrizes têm o mesmo shapeAND, elementsvocê deve usá- np.array_equallo, pois é o método recomendado na documentação.
Em termos de desempenho, não espere que nenhuma verificação de igualdade supere outra, pois não há muito espaço para otimizar comparing two elements. Só por uma questão, eu ainda fiz alguns testes.
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
Tão praticamente igual, não há necessidade de falar sobre a velocidade.
O (A==B).all()comportamento se comporta praticamente como o seguinte trecho de código:
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()irá falhar se A e B têm diferentes comprimentos . A partir do numpy 1.10, == gera um aviso de descontinuação neste caso .