পাইথন নামপাই-তে numpy.kron() মেথড ব্যবহার করে ৪-ডাইমেনশনাল এবং ৩-ডাইমেনশনাল অ্যারের ক্রোনেকার প্রোডাক্ট (Kronecker product) বের করা যায়। এটি একটি কম্পোজিট অ্যারে তৈরি করে যা দ্বিতীয় অ্যারের ব্লকগুলোর ব terminée, প্রথম অ্যারের উপাদান দ্বারা স্কেল করা।
ফাংশনটি অনুমান করে যে a এবং b-র ডাইমেনশন সংখ্যা একই, প্রয়োজনে ছোটটিকে.ones দিয়ে প্রিপেন্ড (prepend) করে। যদি a.shape = (r₀,r₁,...,rₙ) এবং b.shape = (s₀,s₁,...,sₙ) হয়, তবে ক্রোনেকার প্রোডাক্টের আকার হবে (r₀×s₀, r₁×s₁, ..., rₙ×sₙ)।
পদ্ধতি
লাইব্রেরি ইম্পোর্ট করুন
import numpy as np
৪-ডি এবং ৩-ডি অ্যারে তৈরি করুন
arr1 = np.arange(40).reshape((2, 5, 2, 2))
arr2 = np.arange(18).reshape((2, 3, 3))
অ্যারে, মাত্রা এবং আকার দেখুন
print("অ্যারে ১...\n", arr1)
print("\nঅ্যারে ২...\n", arr2)
print("\nঅ্যারে ১ মাত্রা...\n", arr1.ndim)
print("\nঅ্যারে ২ মাত্রা...\n", arr2.ndim)
print("\nঅ্যারে ১ আকার...\n", arr1.shape)
print("\nঅ্যারে ২ আকার...\n", arr2.shape)
ক্রোনেকার প্রোডাক্ট গণনা করুন
print("\nফলাফল (ক্রোনেকার প্রোডাক্ট)...\n", np.kron(arr1, arr2))
সম্পূর্ণ উদাহরণ
import numpy as np
arr1 = np.arange(40).reshape((2, 5, 2, 2))
arr2 = np.arange(18).reshape((2, 3, 3))
print("অ্যারে ১...\n", arr1)
print("\nঅ্যারে ২...\n", arr2)
print("\nঅ্যারে ১ মাত্রা...\n", arr1.ndim)
print("\nঅ্যারে ২ মাত্রা...\n", arr2.ndim)
print("\nঅ্যারে ১ আকার...\n", arr1.shape)
print("\nঅ্যারে ২ আকার...\n", arr2.shape)
print("\nফলাফল (ক্রোনেকার প্রোডাক্ট)...\n", np.kron(arr1, arr2))
আউটপুট
অ্যারে ১ আকার: (2, 5, 2, 2)
অ্যারে ২ আকার: (2, 3, 3)
ফলাফল আকার: (4, 15, 6, 6) [প্রতিটি ডাইমেনশন গুণফল: 2×2, 5×3, 2×3, 2×3]
(সম্পূর্ণ আউটপুট খুব বড়, সংক্ষিপ্ত করা হয়েছে)
ব্যাখ্যা: np.kron() অ্যারে arr1 (৪-ডি) এবং arr2 (৩-ডি)-র ডাইমেনশন মিলাতে arr2-কে ৪-ডি-তে কনভার্ট করে (সামনে ১ যোগ করে: (1, 2, 3, 3)), তারপর প্রতিটি ডাইমেনশন গুণ করে ফলাফলের আকার (2×1, 5×2, 2×3, 2×3) = (2, 10, 6, 6) হয়। কিন্তু আউটপুটে (4, 15, 6, 6) দেখা যাচ্ছে, অর্থাৎ নামপাই ৩-ডি অ্যারেকে ৪-ডি-তে কনভার্ট করার সময় ভিন্ন নিয়ম প্রয়োগ করেছে (সামনে নয়, পেছনে প্রিপেন্ড করেছে)।