Python教程

Python-插值基础(二)

本文主要是介绍Python-插值基础(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python中的插值

插值类所在模块:

scipy.interpolate

1.一维插值

interpolate.interp1d(x, y, kind = 'linear' ,...)

kind 的可选参数为:

'nearest' ,'zero':阶梯插值,0阶样条插值
'slinear' ,'linear' : 线性插值
'quadratic','cubic': 二阶,三阶样条插值

2. 二维插值:

interpolate.interp2d(x, y, kind = 'linear' ,...)

3. 实例

使用 s i n sin sin函数的 10 10 10个点作为原始数据,采用 P y t h o n Python Python中的不同方法插值.
代码:

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

kind = ['nearest','zero',#阶梯插值,0阶样条插值
'slinear' ,'linear', #: 线性插值
'quadratic','cubic']#: 二阶,三阶样条插值

x = np.arange(11)
y = np.sin(x)
u = np.arange(0,10.05,0.05) #需要插值的数据点
fig,axes = plt.subplots(2,3)
ax =axes.ravel() #将二维数组转化为一维
for i,kd in enumerate(kind):
    ax[i].plot(x,y,'o',mec='k',mfc='w',ms=15)
    f = interp1d(x, y,kind=kd)
    v = f(u)
    ax[i].plot(u,v,'b',label=kd)
    ax[i].legend()

结果:
在这里插入图片描述

这篇关于Python-插值基础(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!