যদি আপনি যাচাই করতে চান যে দুটি অ্যারে একই থাকে 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
আইএমই চান । A এবং B এর দৈর্ঘ্য আলাদা থাকলে ক্রাশ(A==B).all()
হবে । নকল 1.10 হিসাবে, == এক্ষেত্রে অবচয় হুঁশিয়ারি উত্থাপন করে ।