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中使用partial改变方法默认参数实例
Apr 28 Python
python编写爬虫小程序
May 14 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
python之文件读取一行一行的方法
Jul 12 Python
python交互界面的退出方法
Feb 16 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
关于Tensorflow 模型持久化详解
Feb 12 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Python爬取酷狗MP3音频的步骤
Feb 26 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常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
python装饰器深入学习
2018/04/06 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
绩效专员岗位职责
2013/12/02 职场文书
出国留学介绍信
2014/01/13 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
工程承包协议书
2014/10/20 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript