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()

输出

上述程序将生成以下输出 −


相关文章