দুটি এক-মাত্রিক সিকোয়েন্সের বিচ্ছিন্ন লিনিয়ার কনভোলিউশন বের করতে পাইথন নামপাই-র numpy.convolve() মেথডটি ব্যবহার করা হয়।
কনভোলিউশন অপারেটর সিগন্যাল প্রসেসিং-এ প্রায়শই দেখা যায়, যেখানে এটি একটি লিনিয়ার টাইম-ইনভেরিয়েন্ট সিস্টেমের সিগন্যাল ওপর প্রভাব মডেল করে। সম্ভাবনা তত্ত্বে, দুটি স্বাধীন র্যান্ডম ভেরিয়েবলের যোগফল তাদের নিজস্ব বিতরণের কনভোলিউশন অনুযায়ী বিতরণ পায়। যদি v, a-এর চেয়ে বড় হয়, তবে গণনার আগে অ্যারে দুটি আদল-বদল করা হয়। মেথডটি a এবং v-র বিচ্ছিন্ন, লিনিয়ার কনভোলিউশন রিটার্ন করে। প্রথম প্যারামিটার a হলো প্রথম এক-মাত্রিক ইনপুট অ্যারে। দ্বিতীয় প্যারামিটার v হলো দ্বিতীয় এক-মাত্রিক ইনপুট অ্যারে। তৃতীয় প্যারামিটার mode অপশনাল, মানগুলো হলো 'full', 'valid', 'same'।
ধাপসমূহ
প্রথমে প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন:
import numpy as np
array() মেথড ব্যবহার করে দুটি নামপাই এক-মাত্রিক অ্যারে তৈরি করুন:
arr1 = np.array([1, 2, 3]) arr2 = np.array([0, 1, 0.5])
অ্যারে দুটি প্রদর্শন করুন:
print("Array1...\n", arr1)
print("\nArray2...\n", arr2)
দুটি অ্যারের ডাইমেনশন পরীক্ষা করুন:
print("\nArray1-এর ডাইমেনশন...\n", arr1.ndim)
print("\nArray2-এর ডাইমেনশন...\n", arr2.ndim)
দুটি অ্যারের শেপ পরীক্ষা করুন:
print("\nArray1-এর শেপ...\n", arr1.shape)
print("\nArray2-এর শেপ...\n", arr2.shape)
ডিফল্ট মোডে (full) কনভোলিউশন বের করতে numpy.convolve() মেথডটি ব্যবহার করুন:
print("\nফলাফল....\n", np.convolve(arr1, arr2))
সম্পূর্ণ উদাহরণ
import numpy as np
# array() মেথড ব্যবহার করে দুটি নামপাই এক-মাত্রিক অ্যারে তৈরি করা
arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])
# অ্যারে দুটি প্রদর্শন
print("Array1...\n", arr1)
print("\nArray2...\n", arr2)
# দুটি অ্যারের ডাইমেনশন পরীক্ষা
print("\nArray1-এর ডাইমেনশন...\n", arr1.ndim)
print("\nArray2-এর ডাইমেনশন...\n", arr2.ndim)
# দুটি অ্যারের শেপ পরীক্ষা
print("\nArray1-এর শেপ...\n", arr1.shape)
print("\nArray2-এর শেপ...\n", arr2.shape)
# কনভোলিউশন বের করা
print("\nফলাফল....\n", np.convolve(arr1, arr2))
আউটপুট
Array1... [1 2 3] Array2... [0. 1. 0.5] Array1-এর ডাইমেনশন... 1 Array2-এর ডাইমেনশন... 1 Array1-এর শেপ... (3,) Array2-এর শেপ... (3,) ফলাফল.... [0. 1. 2.5 4. 1.5]