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脚本自动生成需要文件实例代码
Feb 04 Python
利用python写个下载teahour音频的小脚本
May 08 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 Python
python redis 删除key脚本的实例
Feb 19 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python tkinter常用操作代码实例
Jan 03 Python
keras中的backend.clip用法
May 22 Python
Python常见反爬虫机制解决方案
Jun 01 Python
Python入门学习之类的相关知识总结
May 25 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实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python求绝对值的三种方法小结
2019/12/04 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
使用python实现多维数据降维操作
2020/02/24 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Python map及filter函数使用方法解析
2020/08/06 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
中科方德软件测试面试题
2016/04/21 面试题
女子职高个人自荐书
2014/02/01 职场文书
给全校老师的建议书
2014/03/13 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python