यदि आप जांचना चाहते हैं कि क्या दो सरणियों के समान है 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_equal
IME चाहते हैं । ए और बी अलग लंबाई है अगर दुर्घटना(A==B).all()
होगी । जैसा कि 1.10 के बराबर है, == इस मामले में एक पदावनति चेतावनी देता है ।