【python】scipy.signal.savgol_filter()

目录

作用​

参数设置

示例


作用

对数组应用Savitzky-Golay过滤器。

SG滤波法(Savitzky Golay Filter)最初由Savitzky和Golay于1964年提出。广泛地运用于数据流平滑除噪,是一种在时域内基于局域多项式最小二乘法拟合的滤波方法。其核心思想也是对窗口内的数据进行加权滤波,但是它的加权权重是对给定的高阶多项式进行最小二乘拟合得到。它的优点在于,在滤波平滑的同时,可以确保信号的形状、宽度不,能够更有效地保留信号的变化信息,对于数据的观测信息保持的更好,在一些注重数据变化的场合会比较适用。

这是一个一维滤波器。如果x的维度大于1,则axis确定应用过滤器的轴。

参数设置

scipy.signal.savgol_filter(x, window_length, polyorder, deriv=0, delta=1.0, axis=-1, mode='interp', cval=0.0)
  • x (array_like):要过滤的数据。If x is not a single or double precision floating point array, it will be converted to type before filtering.numpy.float64
  • window_length (int):滤波器窗口的长度(即系数的数量)。如果mode是' interp ', window_length必须小于或等于x的大小。
  • polyorder(int):用于拟合样本的多项式的阶数。Polyorder必须小于window_length。
  • deriv(int,可选):要计算的导数的阶数。这必须是一个非负整数。默认值为0,表示过滤数据时不做区分。
  • delta(float,可选):将应用滤波器的样本的间距。仅当deriv >为0时使用。默认值是1.0。
  • axis(int,可选):滤波器应用的阵列x轴。默认值是-1。
  • mode(str,可选):必须是` mirror `、` constant `、` nearest `、` wrap `或` interp `。这决定了应用滤波器的填充信号使用的扩展类型。当mode为' constant '时,padding值由cval指定。有关` mirror `、` constant `、` wrap `和` nearest `的更多细节,请参阅注释。当选择` interp `模式(默认)时,不使用扩展。相反,次数多阶多项式拟合边缘的最后一个window_length值,该多项式用于计算最后一个window_length输出值。
  • cval(scalar,可选):值填充超过输入的边缘,如果mode为' constant '。默认值是0.0。
  • 返回值:Y,过滤后的数据。与x的形状相同的array

示例

随机生成了100个数,画了个图。

# 调用
import matplotlib.pyplot as plt
import random
import scipy.signal

# 生成随机列表
loss=[random.randint(0,50)for i in range(100)]

plt.figure()
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'

# loss曲线
plt.plot(loss, 'g', linewidth=2, label='loss')
# 平滑
plt.plot(scipy.signal.savgol_filter(loss, 50, 3), 'b', linestyle='--', linewidth=2,label='smooth train loss')

plt.grid(True)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend()
plt.show()

 输出结果:

 

官方: ​​​​​​scipy.signal.savgol_filter — SciPy v1.10.1 Manual

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值