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下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
关于python 跨域处理方式详解
Mar 28 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
matplotlib 三维图表绘制方法简介
Sep 20 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
PHP7 弃用功能
2021/03/09 PHP
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
详细介绍Ruby中的正则表达式
2015/04/10 Python
Python 变量类型详解
2018/10/10 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
欢迎横幅标语
2014/06/17 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2014年评职称工作总结
2014/11/20 职场文书
小学运动会加油词
2015/07/18 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP