NumPy-এর einsum() মেথড অপারেন্ডগুলোর ওপর আইনস্টাইন সারমেশন কনভেনশন মূল্যায়ন করে। এই কনভেনশন ব্যবহার করে বহুবimensional, লিনিয়ার बीজগাণিতিক অ্যারে অপারেশনগুলো সহজভাবে রিপ্রেজেন্ট করা যায়। ইমপ্লিসিট মোডে einsum এই মানগুলো কম্পিউট করে। এক্সপ্লিসিট মোডে, নির্দিষ্ট সাবস্ক্রিপ্ট লেবেলগুলোর ওপর সমষ্টি অক্ষম বা বাধ্যতামূলক করে einsum আরও ফ্লেক্সিবিলিটি প্রদান করে যাতে ক্লাসিক্যাল আইনস্টাইন সারমেশন অপারেশন না হলে সেগুলোও কম্পিউট করা যায়।
আইনস্টাইন সারমেশন কনভেনশন ব্যবহার করে ম্যাট্রিক্সের ডায়াগোনাল বের করার জন্য পাইথনে numpy.einsum() মেথড ব্যবহার করুন।
- প্রথম প্যারামিটার (subscript): সমষ্টির জন্য সাবস্ক্রিপ্ট নির্দিষ্ট করে কমা-সেপারেটেড সাবস্ক্রিপ্ট লেবেলের তালিকা হিসেবে।
- দ্বিতীয় প্যারামিটার (operands): অপারেশনের জন্য অ্যারেগুলো।
ধাপসমূহ
১. প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন
import numpy as np
২. arange() এবং reshape() ব্যবহার করে NumPy অ্যারে তৈরি করুন
arr = np.arange(16).reshape(4, 4)
৩. অ্যারে প্রদর্শন করুন
print("আমাদের অ্যারে...\n", arr)
৪. ডাইমেনশন চেক করুন
print("\nআমাদের অ্যারের ডাইমেনশন...\n", arr.ndim)
৫. ডাটা টাইপ পান
print("\nআমাদের অ্যারে অবজেক্টের ডাটা টাইপ...\n", arr.dtype)
৬. শেপ পান
print("\nআমাদের অ্যারে অবজেক্টের শেপ...\n", arr.shape)
৭. আইনস্টাইন সারমেশন কনভেনশন ব্যবহার করে ডায়াগোনাল বের করুন
print("\nফলাফল...\n", np.einsum('ii->i', arr))
সম্পূর্ণ উদাহরণ
import numpy as np
# arange() এবং reshape() ব্যবহার করে NumPy অ্যারে তৈরি
arr = np.arange(16).reshape(4, 4)
# অ্যারে প্রদর্শন
print("আমাদের অ্যারে...\n", arr)
# ডাইমেনশন চেক
print("\nআমাদের অ্যারের ডাইমেনশন...\n", arr.ndim)
# ডাটা টাইপ
print("\nআমাদের অ্যারে অবজেক্টের ডাটা টাইপ...\n", arr.dtype)
# শেপ
print("\nআমাদের অ্যারে অবজেক্টের শেপ...\n", arr.shape)
# আইনস্টাইন সারমেশন কনভেনশন ব্যবহার করে ডায়াগোনাল বের করুন
print("\nফলাফল...\n", np.einsum('ii->i', arr))
আউটপুট
আমাদের অ্যারে...
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
আমাদের অ্যারের ডাইমেনশন...
2
আমাদের অ্যারে অবজেক্টের ডাটা টাইপ...
int64
আমাদের অ্যারে অবজেক্টের শেপ...
(4, 4)
ফলাফল...
[ 0 5 10 15]
ব্যাখ্যা
সাবস্ক্রিপ্ট 'ii->i' বোঝায়: ইনপুট অ্যারের দুটি অ্যাক্সিস একই লেবেল i দিয়ে চিহ্নিত করা হয়েছে, যা বোঝায় সেগুলো একই ডাইমেনশনের (স্কয়ার ম্যাট্রিক্স)। আউটপুটে শুধু i থাকা মানে ডায়াগোনাল এলিমেন্টগুলো (যেখানে রো এবং কলাম ইন্ডেক্স সমান) বের করা হয়েছে। এটি np.diag(arr) বা arr.diagonal() সমতুল্য।