通常来说,一维插值有很多方法,也比较容易实现。griddata()函数则是可以方便实现二维插值。

例:图中有9个网格点,横坐标为a,纵坐标为b,蓝色的数字是这个点的函数值。

(不好意思,例子比较简单,我直接手画了)

由于整个网格由离散点组成,当我们想知道 (1.5, 1.5) 或者 (2.5, 2.5) 的坐标值的时候,是无法直接获取的,只能通过二维的插值来得到,如下图。

这个时候就可以采用griddata()函数,代码如下:

import numpy as np
from scipy.interpolate import griddataa = [1,2,3]
b = [1,2,3]
ans = [4,5,6,3,4,5,2,3,4]
A,B = np.meshgrid(a,b)
# print(A)
# print(B)
X_star = np.hstack((A.flatten()[:,None], B.flatten()[:,None]))
# print(X_star)m = [1.5,2.5]
n = [1.5,2.5]
M,N = np.meshgrid(m,n)
U = griddata(X_star, ans, (M, N), method='cubic')
print(U)

打印出U,为:

[[4.00000001 5.00000007]
 [2.99999996 3.99999998]]

为了方便检验,其实例子中的函数值就是两个坐标点加一块的值。这四个坐标的正确值应该为4、5、3、4,可以看到插值的结果还挺准确的。

注意事项:此函数只能对在原本网格范围内的点进行插值,超出原本网格范围的值则会被设置为nan。

比如初始的网格是[1,2,3], [1,2,3],而我去插入 (1.5, 999) 处的值,这明显不可能,函数就直接输出nan。

Python函数:生动解释二维插值函数:griddata()相关推荐

  1. Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组、split函数垂直拆分二维numpy数组

    Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组.split函数垂直拆分二维numpy数组 目录

  2. 使用Python,Opencv进行二维直方图的计算及绘制

    使用Python,Opencv进行二维直方图的计算及绘制 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算 ...

  3. python怎么画简单图片-Python绘制简易的二维图像

    大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...

  4. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  5. Python利用qrcode生成二维码并解析结果

    使用到的库 1.qrcode 介绍:qrcode模块是Github上的一个开源项目,提供了生成二维码的接口.qrcode模块默认使用PIL库用于生成图像. 安装: pip install qrcode ...

  6. 如何使用Python识别图片中的二维码

    如何使用Python识别图片中的二维码 二维码是一种方便快捷的信息传递方式,它们广泛应用于电子商务.广告和其他领域.在许多情况下,我们需要识别图片中的二维码,以便从中获取信息.Python是一种流行的 ...

  7. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  8. C语言:编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递

    /*编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递*/ #include<stdio.h> #define N 4 #define M 3 int findmax(int ( ...

  9. python qrcode库生成二维码的代码

    如下内容内容是关于python qrcode库生成二维码的内容,希望能对各位有所用. import qrcode img = qrcode.make('Some data here')高级用法impo ...

最新文章

  1. Scrum立会报告+燃尽图(十月二十一日总第十二次)
  2. 1.5 不同类型的循环网络-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. 【通知】+ java基础提升篇:Java 序列化的高级认识
  4. Java里面获取当前服务器的IP地址
  5. live http headers_iPhone12手机Live+利用VJD2导播软件直播
  6. python段错误原因_python – 捕获崩溃的子进程的“分段错误”...
  7. 【转】Hibernate数据过滤
  8. 「递归」第5集 | 从网瘾少年到极客大神:没有什么是一段代码解决不了的
  9. html5求6的阶乘,.net 求数的阶乘
  10. Python 3.6学习笔记(一)
  11. 远程GitHub中的项目拉取到本地
  12. PureComponent: setState未触发render渲染
  13. python自动修改论文格式_如何轻轻松松修改论文格式?
  14. 使用lombok时,get/set方法冒红问题
  15. Redis-6.2.x版本官方发行说明(附谷歌翻译)【持续更新】
  16. Java监听mysql的binlog详解(mysql-binlog-connector)
  17. kali linux查看版本,kali linux 系统版本的查看方法
  18. lle算法c++语言,2015年计算机二级C++上机考前冲刺题(4)
  19. docker下安装typecho建立自己得博客系统(1)dockerfile篇
  20. 专业音视频播放器:Elmedia Video Player Pro mac中文版

热门文章

  1. 解决注册错误:OpenAI‘s services are not available in your country.
  2. hai wind 2
  3. final、finally、finalize()分别表示什么含义?
  4. ComboBox隐藏三角符号
  5. 力创eda 画布大小_立创EDA快速上手经验篇 -
  6. 抖音弹幕抓取(适合纯小白)
  7. Java源码下载地址
  8. 13.zabbix学习笔记:zabbix监控之短信报警
  9. extends 与 implements 的区别 !
  10. printf在c++使用