加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

2019年8月15日 python玄学建模(5):插值(二维)

发布时间:2020-12-20 10:59:04 所属栏目:Python 来源:网络整理
导读:官方文档链接:https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html#scipy.interpolate.interp2d 这篇博客接着上次的scipy一维插值,讲讲二维插值api的用法 scipy库中可以通过interp2d类来实现一维插值 类原型: class?

官方文档链接:https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html#scipy.interpolate.interp2d

这篇博客接着上次的scipy一维插值,讲讲二维插值api的用法

scipy库中可以通过interp2d类来实现一维插值

类原型:class?scipy.interpolate.interp2d(x,?y,?z,?kind=‘linear‘,?copy=True,?bounds_error=False,?fill_value=None)

参数如下:

x和y:插值点的x和y坐标。具体有两种写法,如果x和y可以通过笛卡尔积构成网格(例如x=[1,2,3],y=[0,3]),则x和y就会被视为网格,插值点个数为len(x)*len(y);

如果不能,那么x和y必须一一对应以指出每个插值点的x和y坐标,x和y的长度必须一致,比如x=[2,3,1],y=[0,4]就表示(2,0),(3,(1,4)三个插值点,插值点个数为len(x)或len(y);

如果x和y是多维的,则会被自动展平;

z:插值点的z坐标,一维数组(如果是多维则会被自动展平),长度必须与x和y决定的插值点个数一致;

kind:插值方式,有三种可选,分别是‘linear‘(线性插值)、‘cubic‘(三次样条插值)、‘quintic‘(五次样条插值);

copy、bounds_error、fill_value三个参数用法和一维插值基本一样,不过fill_value只有固定填充值和外插两种方式。

二维插值api的用法一样很简单,下面就是官方文档中给出的例子:

>>> from scipy import interpolate
>>> x = np.arange(-5.01,5.01,0.25)
>>> y = np.arange(-5.01,0.25)
>>> xx,yy = np.meshgrid(x,y) #生成网格点,不了解用法的话可以直接查,资料很多
>>> z = np.sin(xx**2+yy**2)
>>> f = interpolate.interp2d(x,y,z,kind=cubic)
>>> import matplotlib.pyplot as plt
>>> xnew = np.arange(-5.01,1e-2)
>>> ynew = np.arange(-5.01,1e-2)
>>> znew = f(xnew,ynew)
>>> plt.plot(x,z[0,:],ro-,xnew,znew[0,b-)
>>> plt.show()

以上就是interp2d的简单用法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读