python中griddata的外插值_利用griddata进行二维插值

python中griddata的外插值_利用griddata进行二维插值有时候会碰到这种情况:实际问题可以抽象为\(z=f(x,y)\)的形式,而你只知道有限的点\((x_i,y_i,z_i)\),你又需要局部的全数据,这时你就需要插值,一维的插值方法网上很多,不再赘述,这里仅介绍二维的插值法这里主要利用scipy.interpolate包里griddata函数griddata(points,values,xi,method=’linear’…

大家好,又见面了,我是你们的朋友全栈君。

有时候会碰到这种情况:

实际问题可以抽象为 \(z = f(x, y)\) 的形式,而你只知道有限的点 \((x_i,y_i,z_i)\),你又需要局部的全数据,这时你就需要插值,一维的插值方法网上很多,不再赘述,这里仅介绍二维的插值法

这里主要利用 scipy.interpolate 包里 griddata 函数

griddata(points, values, xi, method=’linear’, fill_value=numpy.nan, rescale=False)

points:二维数组,第一维是已知点的数目,第二维是每一个点的 \(x,y\) 坐标

values:一维数组,和 points 的第一维长度一样,是每个坐标的对应 \(z\) 值

xi:需要插值的空间,一般用 numpy.mgrid 函数生成后传入

method:插值方法

nearest

linear

cubic

fill_value:无数据时填充数据

该方法返回的是和 xi 的 shape 一样的二维数组

【example】

import numpy as np

import matplotlib.pyplot a plt

from scipy.interpolate import griddata

points = np.random.rand(n, 2) # n是已知点个数

values = np.random.rand(n) # 对应没每个点的值

# 插值的目标

# 注意,这里和普通使用数组的维度、下标不一样,是因为如果可视化的话,imshow坐标轴和一般的不一样

x, y = np.mgrid[

end1:start1:step1 * 1j,

start2:end2:step2 * 1j]

# grid就是插值结果,你想要的到的区间的每个点数据都在这个grid矩阵里

grid = griddata(points, values, (x, y), method=”cubic”, fill_value=0)

# 这里通过imshow显示时,坐标思维要按照计算机的来,普通图片是2维数组

# x 是最终结果的第一维,下标是从上到下由零增加

# y 是最终结果的第二维,下标是从左到右由零增加

plt.subplot(1, 1, 1)

plt.title(“0°”)

plt.imshow(grid, cmap=’jet’) # contourf jet gray

plt.colorbar()

plt.show()

np.mgrid 函数每一个维度最后一个参数:

可以是实数中的整数,表示步长,此时不包括末尾数据(左闭右开)

可以是实部为零,虚部为整数的复数,这个数字表示该区间想要插值多少个点的数据(闭区间)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141383.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Render、RenderChildren和RenderControl

    Render、RenderChildren和RenderControl(1)protectedvirtualvoidRender(HtmlTextWriterwriter);  该方法用于将服务器控件内容发送到提供的HtmlTextWriter对象,此对象编写将在客户端呈现的内容。在开发服务器控件时,可以重写此方法以呈现服务器控件。  (2)protectedvirtualvoidRenderChildren(HtmlTextW…

    2022年7月20日
    12
  • cover letter and response letter

    cover letter and response letter在此之前先区分投稿CoverLetter,修改稿CoverLetter和ResponseLetter,前两个是写给编辑或者TopicEditor,后者是写给Reviwer。一般来说在提交稿件时我们会附带一封CoverLetter主要是一些客套话跟编辑说的。修改稿CoverLetterDearProfessor***:(***指的是负责你论文的编辑,不知道名字就写Editor)    Onbehalfofmyco-authors,we

    2022年6月2日
    28
  • 公网ip远程访问nas_无公网ip访问家庭nas

    公网ip远程访问nas_无公网ip访问家庭nas2018-12-0113:45:00770点赞5996收藏566评论上次的那篇NAS的文章有着很不错的热度,首先是感谢观众老爷们的大力支持啦,那么这篇文章主要是回答一些评论中的问题,而且也为那些第一次接触NAS的小伙伴提供一个简单的参考,如果对这方面想有所了解的,请耐心阅读下面的内容,个人记忆力有限,有些东西记不起来了,如有遗漏或者错误,请斧正。废话不多说,我们开始。如何申请公网IP这个是大家问的最多的,而且许多问题的根本原因都是公网IP造成的,那么,首先我们要知道一点基础的…

    2022年8月30日
    0
  • mybatis的逆向工程怎么实现_列举创建连接的方法

    mybatis的逆向工程怎么实现_列举创建连接的方法Mybatis逆向工程创建方法1.首先利用数据库的可视化工具新建一张表。2.打开IDEA新建一个项目。3.导入pom.xml所需要的依赖文件。<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0&quo

    2022年8月21日
    3
  • maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener[通俗易懂]

    maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener[通俗易懂]maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    2022年4月23日
    44
  • windows下面编译ucosII操作系统

    windows下面编译ucosII操作系统       ucos是一款在嵌入式系统上应用的实时操作系统,为了调试和学习(我们部门负责DSP、MCU、ARM到服务器的各种程序),有必要再windows下面模拟运行,我在一个德国网站上找到了一份移植过的代码,经过我的小小修改,已经可以用VS2010和Dev-C++(MinGw编译器)上编译运行。 运行过程中发现2个编译器编译出来的程序运行结果并不相同,看来2种编译器在实现…

    2022年6月4日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号