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 04 Python
python单线程实现多个定时器示例
Mar 30 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
pytorch常见的Tensor类型详解
Jan 15 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
python实现画图工具
Aug 27 Python
Python偏函数实现原理及应用
Nov 20 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
js实现图片实时时钟
2020/01/15 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
python中关于日期时间处理的问答集锦
2013/03/08 Python
scrapy爬虫完整实例
2018/01/25 Python
python实现录音小程序
2020/10/26 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
pytorch简介
2020/11/11 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
自考自我鉴定范文
2013/10/30 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
3分钟演讲稿
2014/04/30 职场文书
体育教师求职信
2014/06/30 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2016公司年会通知范文
2015/04/25 职场文书
Javascript之datagrid查询详解
2021/09/15 Javascript
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android