python二维数组插值,python 插值法
插值主要用在物理和数学中。逼近某个值的方法就是通过已知的离散数据求未知数据的方法。本文将利用Python实现一维插值方法,可供参考。
00-1010情况1:线性插值情况2:情况应用插值主要用于物理和数学中逼近某一值。
(1)插值是通过已知的离散数据寻找未知数据的方法。
(2)与拟合不同,插值要求曲线通过所有已知数据。插值是逼近离散函数的一种重要方法。利用它,我们可以通过函数在有限点的值来估计函数在其他点的近似值。
(3)如果自变量x(离散值)对应的函数f(x)已知,则求解一个适当的特定函数p(x)使得p(x)在x处的函数值等于f(x)在x处的已知值,因此,p(x)用于估计这些x值之间f(x)的个数对应的函数值。
Scipy.interpolate.interp1d()一维插值法
参数
# - #
键入x或list,已知点的x坐标。
键入y或list,已知点的y坐标。
种类差异的类型。零,最近步长插值,0阶B样条曲线
Slinear,线性默认线性插值,用直线、一阶B样条曲线连接所有采样点
二次、三次二阶、三阶曲线采样,更高阶的曲线可以直接用整数值确定。
Axis指定沿y轴的插值,默认插值是沿y轴的最后一个轴。
# - #
目录
x是[0,1,2,9],而坐标Y的计算公式为:插值方法是找到能完美通过已知10个点的函数表达式F,得到表达式后再输入一个新的X坐标点,就可以得到对应的新的Y坐标点。
将numpy作为np导入
将matplotlib.pyplot作为plt导入
从scipy.interpolate导入interp1d
#创建已知点的(x,y)坐标
x=np.arange(0,10)
y=np.exp(-x/3.0)
#绘制离散点
# plt.plot(x,y, o )
#插值法就是寻找一个完全通过这些点的函数,从而预测其他相关信息。
#创建一个插值函数,传递已知点的坐标,并使用线性插值
F=interp1d (x,y,kind= linear ,axis=-1) #创建的结果是一个函数表达式
#传入新点的X坐标,预测Y坐标。
x_new=np.arange(0,9,0.2)
#生成预测点数
y_new=f(x_new)
#比较旧点和新点的坐标
plt.plot(x,y, o ,x_new,y_new, * )
plt.show()
可以看出插值后的新坐标点可以通过旧坐标点。
案例一:线性插值
问:
在一个实验中,从1到12的11个小时内,每隔一个小时测量一次温度,测量的温度依次为5、8、9、15、25、29、31、30、22、25、27、24。尝试每1/10小时估算一次温度值。
答:
根据12小时的测量结果,通过插值计算每0.1小时的测量结果。如上,找一个能完美通过这12个坐标点的函数,用这个函数预测新的坐标。
使用以下两种差分类型:线性插值和二次曲线插值。线性插值用直线段连接每两个坐标点,二次曲线插值用二次曲线连接每两个坐标点。
将numpy作为np导入
将matplotlib.pyplot作为plt导入
从scipy.interpolate导入interp1d
# x是时间序列,y是每个小时的测量温度。
x=np.arange(1,13)
y=[5,8,9,15,25,29,31,30,22,25,27,24]
# Interpolation使用二阶插值得到包含所有坐标点的函数表达式。
f1=interp1d(x,y,kind=quadratic ,axis=-1)
#使用线性插值
f2=interp1d(x,y,kind=linear ,axis=-1)
#生成新的时间序列点
x_new=np.arange(1,12,0.1)
#二阶插值计算每个时间点对应的新测量结果。
y_new1=f1(x_new)
#测量结果的二阶插值计算
y_new2=f2(x_new)
#比较两种插值方法的坐标
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.title(二次)
plt.plot(x,y, o ,x_new,y_new1, * )
plt.subplot(122)
plt.title(线性)
plt.plot(x,y, o ,x_new,y_new2, * )
plt.show()
可以看出,二阶插值法比线性插值法更平滑,满足设计要求。
以上是Python的一维插值方法的样例代码的详细内容。关于Python一维插值方法的更多信息,请关注盛行的IT软件开发工作室的其他相关文章。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。