যদি আপনি যাচাই করতে চান যে দুটি অ্যারে একই থাকে 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 হিসাবে, == এক্ষেত্রে অবচয় হুঁশিয়ারি উত্থাপন করে ।