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中的对象,方法,类,实例,函数用法分析
Jan 15 Python
进一步探究Python的装饰器的运用
May 05 Python
Python实现堆排序的方法详解
May 03 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python的socket编程入门
Jan 29 Python
Django数据库表反向生成实例解析
Feb 06 Python
python机器学习之贝叶斯分类
Mar 26 Python
Django 使用easy_thumbnails压缩上传的图片方法
Jul 26 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
Django mysqlclient安装和使用详解
Sep 17 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
python中if和elif的区别介绍
Nov 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
php 常用类整理
2009/12/23 PHP
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
javascript闭包的理解
2015/04/01 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
python连接MySQL数据库实例分析
2015/05/12 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python实现字典的key和values的交换
2015/08/04 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python 检查文件mime类型的方法
2018/12/08 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
计算机应用专业推荐信
2013/11/13 职场文书
《白鹅》教学反思
2014/04/13 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
python 如何用terminal输入参数
2021/05/25 Python