কম্পিউটার টিউটোরিয়াল

Python scipy.interpolate.interp1d - ১D ইন্টারপোলেশন

scipy.interpolate.interp1d ফাংশন ১-ডাইমেনশনাল ফাংশন ইন্টারপোলেট করতে ব্যবহৃত হয়। x এবং y অ্যারে দিয়ে y = f(x) অনুমান করে, তারপর নতুন পয়েন্টের ভ্যালু বের করে।

সিনট্যাক্স

scipy.interpolate.interp1d(x, y)

যেখানে x = ১D রিয়েল ভ্যালু অ্যারে, y = N-D রিয়েল ভ্যালু অ্যারে (x-র দৈর্ঘ্যের সমান)।

উদাহরণ ১: বেসিক ইন্টারপোলেশন

import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.arange(0, 10)
y = np.exp(-x / 5.0)

# ইনপুট ডেটা
plt.subplot(1, 2, 1)
plt.title("Input X and Y")
plt.plot(x, y)

# ইন্টারপোলেটেড ডেটা
plt.subplot(1, 2, 2)
plt.title("Interpolated")
f = interpolate.interp1d(x, y)
x_new = np.arange(0, 7, 0.7)
y_new = f(x_new)
plt.plot(x_new, y_new, 's')
plt.show()

আউটপুট ১

বামে মূল এক্সপোনেনশিয়াল ডিকে কার্ভ (১০ পয়েন্ট)। ডানে ইন্টারপোলেটেড ১০ পয়েন্ট (০ থেকে ৬.৩, স্টেপ ০.৭), স্কোয়ার মার্কারসহ।

উদাহরণ ২: অন্য একটি উদাহরণ

import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.arange(0, 10)
y = np.exp(-x**2 / 9.0)

f = interpolate.interp1d(x, y)
xnew = np.arange(0, 9, 1.2)
plt.plot(x, y, 'o', xnew)
plt.show()

আউটপুট ২

গাউসিয়ান কার্ভ (y=exp(-x²/9)) এর মূল পয়েন্ট (সার্কেল) এবং ইন্টারপোলেটেড পয়েন্ট (xnew, ০ থেকে ৮.৪, স্টেপ ১.২) একসাথে দেখাবে।

নোট: interp1d-র ডিফল্ট কাইন্ড 'linear'। kind='cubic', 'quadratic' ইত্যাদি ব্যবহার করে হাইার-অর্ডার ইন্টারপোলেশন করা যায়।

  1. পাইথন প্লটে সুপারস্ক্রিপ্ট ব্যবহার

  2. পাইথনে টাইম সিরিজ প্লট করা

  3. Python-এ Matplotlib সাবপ্লটে xticks সেট করা

  4. পাইথনে একাধিক গ্রাফ একসাথে জোড়া করার পদ্ধতি