iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现线性插值的示例
  • 465
分享到

python实现线性插值的示例

python线性插值python线性插值 2022-12-08 20:12:26 465人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录线性插值python实现线性插值numpy.interpscipy.interpolate.interp1d线性插值 插值:是根据已知的数据序列(可以理解为你坐标中一系列离散的点

线性插值

插值:是根据已知的数据序列(可以理解为你坐标中一系列离散的点),找到其中的规律,然后根据找到的这个规律,来对其中尚未有数据记录的点进行数值估计。
线性插值:是针对一维数据的插值方法。它根据一维数据序列中需要插值的点的左右临近两个数据来进行数值估计。当然了它不是求这两个点数据大小的平均值(在中心点的时候就等于平均值)。而是根据到这两个点的距离来分配比重的。

Python实现线性插值

numpy.interp

numpy.interp(x, xp, fp, left=None, right=None, period=None)

参数:

  • x:类似数组,要插值点的横坐标
  • xp:一维浮点数序列,如果未指定参数周期,则数据点的x坐标必须增加 . 否则,在用归一化周期边界之后对xp进行内部排序,xp = xp % period。
  • fp:一维浮点数或复数序列,数据点的y坐标,与xp的长度相同。
  • left:可选择参数。x <xp [0]的返回值,默认值为fp [0]。
  • right:可选择参数。x> xp [-1]的返回值,默认值为fp [-1]。
  • period:设定横坐标的周期,该选项打开时,则忽略left和right。

示例:

import numpy as np 
import matplotlib.pyplot as plt

xp = [1, 2, 3]
fp = [3, 2, 0]
y = np.interp(2.5, xp, fp)
#1.0

y = np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
#array([3.  , 3.  , 2.5 , 0.56, 0.  ])

UNDEF = -99.0
y = np.interp(3.14, xp, fp, right=UNDEF)
#-99.0

#sine 函数插值
x = np.linspace(0, 2*np.pi, 10)
y = np.sin(x)
xvals = np.linspace(0, 2*np.pi, 50)
yinterp = np.interp(xvals, x, y)

plt.plot(x, y, 'o')
plt.plot(xvals, yinterp, '-x')
plt.show()

#周期 x 坐标的插值
x = [-180, -170, -185, 185, -10, -5, 0, 365]
xp = [190, -190, 350, -350]
fp = [5, 10, 3, 4]
y = np.interp(x, xp, fp, period=360)
#array([7.5 , 5.  , 8.75, 6.25, 3.  , 3.25, 3.5 , 3.75])

#复数插值Complex interpolation:
x = [1.5, 4.0]
xp = [2,3,5]
fp = [1.0j, 0, 2+3j]
y = np.interp(x, xp, fp)
#array([0.+1.j , 1.+1.5j])

示例:已知y坐标,求x点。

import numpy as np

y = np.array([0, 38.39, 71.41, 99.66, 123.67, 143.88, 160.61, 174.03, 184.16, 190.8, 193.52])
x = np.array([0, 0.37, 0.74, 1.11, 1.48, 1.85, 2.22, 2.59, 2.96, 3.33, 3.7])
plt.plot(x, y, '-')

y_val = 30
root = np.interp(y_val, y, x)
print(root)

scipy.interpolate.interp1d

scipy.interpolate.interp1d(x, y, kind='linear', axis=- 1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)

参数:

  • x:数值数组。一般是升序排列的x数据点。
  • y:数值数组。与x数据点对应的y坐标,插值维的长度必须与x长度相同。
  • kind:字符串或整数,给出插值的样条曲线的阶数,线性插值用’linear’。‘linear’, ‘nearest’, ‘nearest-up’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, or ‘next’. ‘zero’, ‘slinear’, ‘quadratic’ ,‘cubic’。
  • axis:int
  • copy:bool
  • bounds_error:布尔值,越界是否报错,除非fill_value=‘extrapolate’,否则默认越界时报错。
  • fill_value:数组或’extrapolate’,指定不在x范围内时的填充值或填充方法. 当为’extrapolate’时,返回的函数会对落在x范围外的值进行外插。
  • assume_sorted:bool

示例:

x = data['时间']
y = data['浓度']
# 构建完整的时间序列 = [1,23,...23]
xnew = np.linspace(1,23,num=23)

# 线性插值
f1 = interp1d(x,y,kind='linear')
ynew1 = f1(xnew)
plt.scatter(x,y,zorder=3)
plt.plot(xnew,ynew1,marker='s',ls='--',c='C1')
plt.legend(['data','线性插值'])
plt.xticks(range(0,24,1))
plt.grid(ls='--',alpha=0.5)
plt.xlabel('A')
plt.ylabel('B')
plt.tight_layout()
plt.show()

示例:

from scipy.interpolate import interp1d

x = [1, 2, 3]
y = [3, 2, 0]
f = interp1d(x,y,fill_value=(3,0),bounds_error=False) # 线性内插
out = f([0, 1, 1.5, 2.72, 3.14])
print(out)
#array([3. , 3. , 2.5 , 0.56, 0. ])

fe = interp1d(x,y, fill_value='extrapolate') # 线性内插+外插
out = fe([0, 1, 1.5, 2.72, 3.14])
print(out)
#array([ 4. , 3. , 2.5 , 0.56, -0.28])

到此这篇关于python实现线性插值的文章就介绍到这了,更多相关python线性插值内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python实现线性插值的示例

本文链接: https://www.lsjlt.com/news/174398.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现线性插值的示例
    目录线性插值python实现线性插值numpy.interpscipy.interpolate.interp1d线性插值 插值:是根据已知的数据序列(可以理解为你坐标中一系列离散的点...
    99+
    2022-12-08
    python线性插值 python线性插值
  • 基于Python实现二维图像双线性插值
    目录插值简介最近邻法 (Nearest Interpolation)双三次插值 (Bicubic interpolation)双线性插值 (Bilinear Interpolatio...
    99+
    2024-04-02
  • Python实现一维插值方法的示例代码
    目录案例一:线性插值案例二:案例应用插值主要用于物理学数学中,逼近某一确定值的方法 (1)插值是通过已知的离散数据求未知数据的方法。 (2)与拟合不同,插值要求曲线通过所有的已知数据...
    99+
    2024-04-02
  • python实现线性回归的示例代码
    目录1线性回归1.1简单线性回归1.2 多元线性回归1.3 使用sklearn中的线性回归模型1线性回归 1.1简单线性回归 在简单线性回归中,通过调整a和b的参数值,来拟合从x到...
    99+
    2024-04-02
  • Python实现拉格朗日插值法的示例详解
    目录概述拉格朗日插值法什么是插值法拉格朗日插值法的原理拉格朗日公式拉格朗日插值法的代码实现Python 进行拉格朗日插值的主要知识点Polyfit 函数Polyval 函数Linsp...
    99+
    2023-02-08
    Python实现拉格朗日插值法 Python拉格朗日插值法 Python插值法
  • 基于Python如何实现二维图像双线性插值
    本篇内容主要讲解“基于Python如何实现二维图像双线性插值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python如何实现二维图像双线性插值”吧!在对二维数据进行 resize / ma...
    99+
    2023-07-02
  • Java实现线程插队的示例代码
    目录多线程5(线程插队)1.题目2.解题思路3.代码详解多线程5(线程插队) 1.题目 在编写多线程的业务时,会遇到让一个线程优先于其他线程运行的情况,除了可以设置线程的优先级高于其...
    99+
    2024-04-02
  • 详解Python查找算法的实现(线性,二分,分块,插值)
    目录1. 线性查找2. 二分查找3. 插值查找4. 分块查找5. 总结查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找:线性查找也称为顺序...
    99+
    2024-04-02
  • Python曲线平滑的实现示例
    在编写测试程序的时候,由于数据帧数多的原因,导致生成的曲线图比较难看,如下图: 由于高频某些点的波动导致高频曲线非常难看,因此需要对曲线做平滑处理,让曲线过渡更平滑。对曲线进行平滑...
    99+
    2024-04-02
  • python实现多线程并得到返回值的示例代码
    目录一、带有返回值的多线程1.1 实现代码1.2 结果二、实现过程2.1 一个普通的爬虫函数2.2 一个简单的多线程传值实例2.3 实现重点三、代码实战四、学习一、带有返回值的多线程...
    99+
    2024-04-02
  • R语言实现线性回归的示例
    在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。 简单对来说就是用来确定两种或...
    99+
    2024-04-02
  • python中opencvK均值聚类的实现示例
    目录K均值聚类K均值聚类的基本步骤K均值聚类模块简单例子K均值聚类 预测的是一个离散值时,做的工作就是“分类”。预测的是一个连续值时,做的工作就是&ldquo...
    99+
    2024-04-02
  • 用Python实现插值算法
            数模比赛中,常常需要对数据进行处理和分析,但有时候数据不多,就需要一些方法&ldquo...
    99+
    2024-04-02
  • 用Python实现Newton插值法
    目录1. n阶差商实现2. 牛顿插值实现3.完整Python代码1. n阶差商实现 def diff(xi,yi,n): """ param xi:插值节点xi ...
    99+
    2024-04-02
  • python中threading实现线程的示例分析
    小编给大家分享一下python中threading实现线程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!过程说明从Thread类构成子类。覆盖方法根据需...
    99+
    2023-06-20
  • Tensorflow实现线性回归模型的示例代码
    目录1.线性与非线性回归案例讲解1.数据集2.读取训练数据Income.csv并可视化展示3.利用Tensorflow搭建和训练神经网络模型【线性回归模型的建立】4. 模型预测1.线...
    99+
    2024-04-02
  • C/C++实现线性顺序表的示例代码
    目录线性顺序表简介C语言实现代码C++语言实现代码线性顺序表简介 使用顺序存储结构的线性存储结构的表为线性顺序表,线性存储结构是元素逻辑结构一对一,顺序存储结构是元素物理结构连续,线...
    99+
    2024-04-02
  • C/C++实现线性单链表的示例代码
    目录线性单链表简介C语言实现代码C++语言实现代码线性单链表简介 使用链存储结构的线性存储结构为线性单链表,线性存储结构是元素逻辑结构一对一,链存储结构是元素物理结构不连续,线性单链...
    99+
    2024-04-02
  • python实现GATK多线程加速示例
    目录GATK 变异分析下面的来自网络未验证GATK 变异分析 对于大数据样本可能会比较慢,因此可以按照染色体拆分后进行多线程并行计算。 下面是我写的一个python多线程脚本,仅供参...
    99+
    2024-04-02
  • 插入性能的示例分析
    这篇文章给大家介绍插入性能的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用append提示进行insert叫做直接路径加载插入。【特点】使用这种提示因为系统不去查找freelist链表中的空闲块,直接在高水...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作