দুটি এক-মাত্রিক সিকোয়েন্সের বিচ্ছিন্ন লিনিয়ার কনভোলিউশন বের করতে পাইথন নামপাই-র numpy.convolve() মেথডটি ব্যবহার করা হয়। কনভোলিউশন অপারেটর সিগন্যাল প্রসেসিং-এ প্রায়শই দেখা যায়, যেখানে এটি একটি লিনিয়ার টাইম-ইনভেরিয়েন্ট সিস্টেমের সিগন্যাল ওপর প্রভাব মডেল করে। সম্ভাবনা তত্ত্বে, দুটি স্বাধীন র্যান্ডম ভেরিয়েবলের যোগফল তাদের নিজস্ব বিতরণের কনভোলিউশন অনুযায়ী বিতরণ পায়।
যদি v, a-এর চেয়ে বড় হয়, তবে গণনার আগে অ্যারে দুটি আদল-বদল করা হয়। মেথডটি a এবং v-র বিচ্ছিন্ন, লিনিয়ার কনভোলিউশন রিটার্ন করে। প্রথম প্যারামিটার a হলো প্রথম এক-মাত্রিক ইনপুট অ্যারে। দ্বিতীয় প্যারামিটার v হলো দ্বিতীয় এক-মাত্রিক ইনপুট অ্যারে। তৃতীয় প্যারামিটার mode অপশনাল, মানগুলো হলো 'full', 'valid', 'same'।
মোড 'valid' আউটপुट দরজা max(M, N) - min(M, N) + 1 দিয়ে ফেরত দেয়। কনভোলিউশন প্রোডাক্ট শুধু সেসব পয়েন্টের জন্য দেওয়া হয় যেখানে সিগন্যালগুলো সম্পূর্ণরূপে ওভারল্যাপ করে। সিগন্যাল বাউন্ডের বাইরের মানগুলোর কোনো প্রভাব নেই।
ধাপসমূহ
প্রথমে প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন:
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)
কনভোলিউশন বের করতে numpy.convolve() মেথডটি 'valid' মোডে ব্যবহার করুন:
print("\nফলাফল....\n", np.convolve(arr1, arr2, mode='valid'))
সম্পূর্ণ উদাহরণ
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, mode='valid'))
আউটপুট
Array1... [1 2 3] Array2... [0. 1. 0.5] Array1-এর ডাইমেনশন... 1 Array2-এর ডাইমেনশন... 1 Array1-এর শেপ... (3,) Array2-এর শেপ... (3,) ফলাফল.... [2.5]