NumPy-এর einsum() মেথড অপারেন্ডগুলোর ওপর আইনস্টাইন সারমেশন কনভেনশন মূল্যায়ন করে। এই কনভেনশন ব্যবহার করে বহুবimensional, লিনিয়ার बीজগাণিতিক অ্যারে অপারেশনগুলো সহজভাবে রিপ্রেজেন্ট করা যায়। ইমপ্লিসিট মোডে einsum এই মানগুলো কম্পিউট করে। এক্সপ্লিসিট মোডে, নির্দিষ্ট সাবস্ক্রিপ্ট লেবেলগুলোর ওপর সমষ্টি অক্ষম বা বাধ্যতামূলক করে einsum আরও ফ্লেক্সিবিলিটি প্রদান করে যাতে ক্লাসিক্যাল আইনস্টাইন সারমেশন অপারেশন না হলে সেগুলোও কম্পিউট করা যায়।
পাইথনে অ্যারে অ্যাক্সিস সমষ্টির জন্য numpy.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('ij->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('ij->i', arr))
আউটপুট
আমাদের অ্যারে...
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
আমাদের অ্যারের ডাইমেনশন...
2
আমাদের অ্যারে অবজেক্টের ডাটা টাইপ...
int64
আমাদের অ্যারে অবজেক্টের শেপ...
(4, 4)
ফলাফল...
[ 6 22 38 54]
ব্যাখ্যা
সাবস্ক্রিপ্ট 'ij->i' বোঝায়: ইনপুট অ্যারের দুটি অ্যাক্সিস i এবং j, এবং আউটপুটে শুধু i অ্যাক্সিস থাকবে। অর্থাৎ, j অ্যাক্সিসের ওপর সমষ্টি করা হয়েছে। প্রতিটি সারি (row) এর উপাদানগুলো যোগ করে ফলাফল পাওয়া যাচ্ছে।