python 数据、曲线平滑处理——插值法对折线平滑处理——详解

文章目录

  • 1 插值法对曲线平滑处理
    • 1.1 插值法的常见实现方法
    • 1.2 拟合和插值的区别
    • 1.3 代码实例
  • 2 曲线平滑处理——Savitzky-Golay 滤波器——详解
  • 3 基于Numpy.convolve实现滑动平均滤波——详解

如图想对下面的折线 进行平滑处理
python 数据、曲线平滑处理——插值法对折线平滑处理——详解_第1张图片

1 插值法对曲线平滑处理

实现所需的库: numpy、scipy、matplotlib

1.1 插值法的常见实现方法

nearest:最邻近插值法
zero:阶梯插值
slinear:线性插值
quadratic、cubic:23阶B样条曲线插值

1.2 拟合和插值的区别

1、插值:简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点。

2拟合:拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点。

1.3 代码实例

代码语法:

通过执行from scipy.interpolate import make_interp_spline,导入make_interp_spline模块,之后调用make_interp_spline(x, y)(x_smooth)函数实现。

官方帮助文档: scipy.interpolate.make_interp_spline

import numpy as np
from matplotlib import pyplot as plt
from scipy.interpolate import make_interp_spline

Size = 30
x = np.arange(Size)
y = np.random.randint(1, Size, Size)

#平滑前
plt.plot(x, y,'r')
plt.show()

#平滑处理后
x_smooth = np.linspace(x.min(), x.max(), 500)  # np.linspace 等差数列,从x.min()到x.max()生成300个数,便于后续插值
y_smooth = make_interp_spline(x, y)(x_smooth)
plt.plot(x_smooth, y_smooth,'b')
plt.show()

在这里插入图片描述

插值法 平滑处理 前后对比
在这里插入图片描述

2 曲线平滑处理——Savitzky-Golay 滤波器——详解

曲线平滑处理——Savitzky-Golay 滤波器——详解

3 基于Numpy.convolve实现滑动平均滤波——详解

基于Numpy.convolve实现滑动平均滤波——详解

插值法对折线平滑处理——详解

你可能感兴趣的:(论文格式必会的那些技能,Python,深度学习,python,插值法平滑处理,折线平滑处理)