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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Codeforces 456 A. Laptops「建议收藏」

    Codeforces 456 A. Laptops「建议收藏」题目链接:http://codeforces.com/contest/456/problem/A提示:一共有n个数,而且a[i],b[i]都<=n;所以我们只需要找当a!=b的时候就行了,代码如下:#include<cstdio>#include<iostream>#include&l…

    2022年10月10日
  • arduino连接lcd1602使用方法_arduino液晶显示屏

    arduino连接lcd1602使用方法_arduino液晶显示屏一硬件1602液晶显示,显示容量为16×2个字符,如下图一共有16个引脚,对应功能如下表:1602液晶显示各引脚功能 引脚符号 功能描述 VSS 电源地 VDD 电源正极,本实验接5V VO 液晶显示偏压,本实验接旋转电位器中间端口,调整对比度 RS 指令/数据选择引脚,低电平时,选择指令寄存器,进行指令操作;高电平时,选择数据寄存器,进行数据操作(本实验接数字引脚) RW 读/写选择引脚…

    2022年9月16日
  • springboot mysql事物_SpringBoot事务详细简介[通俗易懂]

    springboot mysql事物_SpringBoot事务详细简介[通俗易懂]重要概念自动提交模式对于mysql数据库,默认情况下,数据库处于自动提交模式。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果执行失败则隐式的回滚事务。对于正常的事务管理,是一组相关的操作处于一个事务之中,因此必须关闭数据库的自动提交模式,下面是查看方式:查看是否自动提交命令(ON表示开启自动提交,值为1,OFF表示关闭自动提交,值为0):showvari…

    2022年6月5日
  • phpstorm2021.3.3 激活码破解方法

    phpstorm2021.3.3 激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
  • 电脑15分钟自动重启_windows一分钟重启解决

    电脑15分钟自动重启_windows一分钟重启解决前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月31日
  • 如何解决tomcat启动闪退问题

    如何解决tomcat启动闪退问题在这几天,遇到一个Tomcat启动闪退的问题,通过查阅各种资料,算是完美解决。在此分享给朋友们。    首先,确定你的问题在哪里    1.查询错误:win+R输入cmd,进入一般处理程序。通过cd找到你Tomcat的bin文件夹,在bin下面输入startup.batrun运行,运行后,如果如(图1)提示,缺少JAVA_HOME或者缺少JRE_HOME(如

    2022年5月7日

发表回复

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

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