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网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
Python中的面向对象编程详解(上)
Apr 13 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
Python格式化输出%s和%d
May 07 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python 高阶函数简单介绍
Feb 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
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python访问类中docstring注释的实现方法
2015/05/04 Python
python实现SMTP邮件发送功能
2020/06/16 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
巴西购物网站:Estrela10
2018/12/13 全球购物
Collection和Collections的区别
2016/05/02 面试题
如何在Shell脚本中使用函数
2015/09/06 面试题
大学生蛋糕店创业计划书
2014/01/13 职场文书
2015年助残日活动总结
2015/03/27 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
关于EntityWrapper的in用法
2022/03/22 Java/Android
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server