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时间戳与时间字符串互相转换实例代码
Nov 28 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python中使用Queue和Condition进行线程同步的方法
Jan 19 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
使用numba对Python运算加速的方法
Oct 15 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
Django2.1.3 中间件使用详解
Nov 26 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 Python
Elasticsearch 数据类型及管理
Apr 19 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
第十节--抽象方法和抽象类
2006/11/16 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
PHP的全局错误处理详解
2016/04/25 PHP
js数组Array sort方法使用深入分析
2013/02/21 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
python进阶教程之模块(module)介绍
2014/08/30 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python中turtle作图示例
2017/11/15 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
程序员岗位职责
2013/11/11 职场文书
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
大学生职业生涯规划范文
2014/01/08 职场文书
陈欧的广告词
2014/03/18 职场文书
学雷锋宣传标语
2014/06/25 职场文书
单位委托书怎么写
2014/09/21 职场文书
师范生见习报告
2014/10/31 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
redis缓存存储Session原理机制
2021/11/20 Redis