Python – scipy.interpolate.interp1d
pythonnumpyserver side programmingprogramming
scipy.interpolate 包中的 interp1d() 函数用于对一维函数进行插值。它采用 x 和 y 等值数组来近似某个函数 y = f(x),然后使用插值来查找新点的值。
语法
scipy.interpolate.interp1d(x, y)
其中 x 是实值的一维数组,y 是实值的 N 维数组。沿插值轴的 y 长度必须等于 x 的长度。
示例 1
让我们考虑以下示例 −
# 导入所需的库 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("输入X 和 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()
输出
上述程序将生成以下输出 −
示例2
我们再举一个例子 −
# 导入所需的库 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()
输出
上述程序将生成以下输出 −