यदि आप जांचना चाहते हैं कि क्या दो सरणियों के समान है shapeऔर elementsआपको इसका उपयोग करना चाहिए np.array_equalक्योंकि यह प्रलेखन में अनुशंसित विधि है।
प्रदर्शन-वार यह उम्मीद नहीं करते हैं कि किसी भी समानता की जांच दूसरे को हरा देगी, क्योंकि अनुकूलन के लिए बहुत जगह नहीं है comparing two elements। बस, मैंने अभी भी कुछ परीक्षण किए हैं।
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
तो बहुत ज्यादा समान, गति के बारे में बात करने की कोई जरूरत नहीं है।
(A==B).all()बर्ताव काफी निम्नलिखित कोड का टुकड़ा के रूप में:
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()होगी । जैसा कि 1.10 के बराबर है, == इस मामले में एक पदावनति चेतावनी देता है ।