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' ইত্যাদি ব্যবহার করে হাইার-অর্ডার ইন্টারপোলেশন করা যায়।