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中pycurl库的用法实例
Sep 30 Python
Python实现的多线程http压力测试代码
Feb 08 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
python 处理string到hex脚本的方法
Oct 26 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python识别验证码的实现示例
Sep 30 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
php foreach、while性能比较
2009/10/15 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
2011/12/28 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
javascript使用location.search的示例
2013/11/05 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python for循环生成列表的实例
2018/06/15 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
Python多线程原理与用法详解
2018/08/20 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
python str字符串转uuid实例
2020/03/03 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
餐饮主管岗位职责
2013/12/10 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
暂住证明怎么写
2015/06/19 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技