Numpy一维线性插值函数的用法


Posted in Python onApril 22, 2020

直接列出函数:

numpy.interp(x, xp, fp, left=None, right=None, period=None)

x - 表示将要计算的插值点x坐标

xp - 表示已有的xp数组

fp - 表示对应于已有的xp数组的值

left - 表示当x值在xp中最小值左边时,x对应y的值为left

right - 表示当x值在xp中最大值右边时,x对应y的值为right

(left和right表示x在xp的域外时,y的取值)

example:

1.

import numpy as np

xp = [1, 2, 3]
fp = [3, 2, 0]

print(np.interp(2.5, xp, fp))

output:1.0

2.

import numpy as np

xp = [1, 2, 3]
fp = [3, 2, 0]

x = [0, 1, 1.5, 2.72, 3.14]

print(np.interp(x, xp, fp))

output:[3. 3. 2.5 0.56 0. ]

3.

import numpy as np

xp = [1, 2, 3]
fp = [3, 2, 0]

x = [0, 1, 1.5, 2.72, 3.14]

print(np.interp(x, xp, fp, -99, 99))

output:[-99. 3. 2.5 0.56 99. ]

补充知识:numpy 的一维插值函数interp

numpy.interp(x, xp, fp, left=None, right=None, period=None)

返回离散数据的一维分段线性插值结果,浮点数或复数(对应于fp值)或ndarray. 插入数据的纵坐标,和x形状相同。

x: 数组,待插入数据的横坐标.

xp: 一维浮点数序列,原始数据点的横坐标,如果period参数没有指定那么就必须是递增的。否则,在使用xp = xp % period正则化之后,xp在内部进行排序.

fp: 一维浮点数或复数序列原始数据点的纵坐标,和xp序列等长.

left: 可选参数,类型为浮点数或复数(对应于fp值),当x < xp[0]时的插值返回值,默认为fp[0].

right: 可选参数,类型为浮点数或复数(对应于fp值),当x > xp[-1]时的插值返回值,默认为fp[-1].

period: None或者浮点数,可选参数. 横坐标的周期. 此参数使得可以正确插入angular x-coordinates. 如果该参数被设定,那么忽略left参数和right参数。

插入横坐标在原函数横坐标范围内

x = 2.5     # 要插入值的横坐标
xp = [1, 2, 3]   # 要插入序列的横坐标
fp = [3, 2, 0]   # 要插入序列的纵坐标
y = np.interp(x, xp, fp) # 返回插入值的纵坐标 1.0
plt.plot(xp, fp, '-o')
plt.plot(x, y, 'x')
plt.show()

插入横坐标在原函数横坐标外(默认)

x = [0, 1, 1.5, 2.72, 3.14] # 左侧外部默认为原函数最左侧函数值,右侧默认为右侧
xp = [1, 2, 3]
fp = [3, 2, 0]
y = np.interp(x, xp, fp) # array([ 3. ,3. ,2.5 ,0.56, 0. ])
plt.plot(xp, fp, '-o')
plt.plot(x, y, 'x')
plt.show()

插入横坐标在原函数横坐标外(指定)

x = 3.14
xp = [1, 2, 3]
fp = [3, 2, 0]
UNDEF = -99.0
y = np.interp(x, xp, fp, right=UNDEF) # -99.0
plt.plot(xp, fp, '-o')
plt.plot(x, y, 'x')
plt.show()

正弦插值

x = np.linspace(0, 2 * np.pi, 10) # 在0到2pi的范围内均匀取10个点
y = np.sin(x)      # sin函数x横坐标对应的y值
xvals = np.linspace(0, 2 * np.pi, 50) # 均匀取50个
yinterp = np.interp(xvals, x, y) # 在映射关系为y的x中插入xvals
plt.plot(x, y, 'o')
plt.plot(xvals, yinterp, '-x')
plt.show()

以上这篇Numpy一维线性插值函数的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
常见的在Python中实现单例模式的三种方法
Apr 08 Python
Python实现豆瓣图片下载的方法
May 25 Python
python中map()函数的使用方法示例
Sep 29 Python
Python使用Django实现博客系统完整版
Sep 29 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
python单例模式的多种实现方法
Jul 26 Python
python多进程间通信代码实例
Sep 30 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
在keras里实现自定义上采样层
Jun 28 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
python数字图像处理:图像简单滤波
Jun 28 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 #Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 #Python
Jupyter Notebook折叠输出的内容实例
Apr 22 #Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 #Python
django使用JWT保存用户登录信息
Apr 22 #Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 #Python
Django如何使用jwt获取用户信息
Apr 21 #Python
You might like
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP扩展开发入门教程
2015/02/26 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
神经网络python源码分享
2017/12/15 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
喝酒检查书范文
2014/02/23 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
党课培训心得体会
2014/09/02 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
Python类方法总结讲解
2021/07/26 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
python数字图像处理:图像简单滤波
2022/06/28 Python