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循环监控远程端口的方法
Mar 14 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
python使用Matplotlib画饼图
Sep 25 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python列表切片操作实例总结
Feb 19 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
Python中第三方库Faker的使用详解
Apr 02 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
使用 php4 加速 web 传输
2006/10/09 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jquery foreach使用示例
2013/09/12 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python读取Excel的方法实例分析
2015/07/11 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
Python实现多属性排序的方法
2018/12/05 Python
Python字典对象实现原理详解
2019/07/01 Python
django序列化serializers过程解析
2019/12/14 Python
python已协程方式处理任务实现过程
2019/12/27 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
2014年大学生党课心得体会范文
2014/03/29 职场文书
2015年导购员工作总结
2015/04/25 职场文书
工作失职检讨书范文
2015/05/05 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python