scipy一维卷积函数convolve1d

文章目录

基本原理

卷积是一种积分变换方法,可理解为滑动平均的推广,在连续函数和数列上的定义分别为

f ( t ) ∗ g ( t ) = ∫ f ( τ ) g ( t − τ ) d τ x ( n ) ∗ h ( n ) = ∑ x ( i ) h ( n − i ) f(t)*g(t) = \int f(\tau)g(t-\tau)\text d\tau\\ x(n)*h(n) = \sum x(i)h(n-i) f(t)∗g(t)=∫f(τ)g(t−τ)dτx(n)∗h(n)=∑x(i)h(n−i)

convolve1d函数

scipy的ndimage模块提供了convolve1d函数,顾名思义用于1维卷积计算,其输入参数如下

python 复制代码
scipy.ndimage.convolve1d(input, weights, axis=-1, output=None, mode='reflect', cval=0.0, origin=0)

其中,mode用以调节卷积后边缘填充的数值,具体情况如下表所示,其中k即为cval参数。

左侧填充 数据 右侧填充
reflect d , c , b , a d, c, b, a d,c,b,a a , b , c , d a, b, c, d a,b,c,d d , c , b , a d, c, b, a d,c,b,a
constant k , k , k , k k, k, k, k k,k,k,k a , b , c , d a, b, c, d a,b,c,d k , k , k , k k, k, k, k k,k,k,k
nearest a , a , a , a a, a, a, a a,a,a,a a , b , c , d a, b, c, d a,b,c,d d , d , d , d d, d, d, d d,d,d,d
mirror d , c , b d, c, b d,c,b a , b , c , d a, b, c, d a,b,c,d c , b , a c, b, a c,b,a
wrap a , b , c , d a, b, c, d a,b,c,d a , b , c , d a, b, c, d a,b,c,d a , b , c , d a, b, c, d a,b,c,d

实战

下面实战演示一下不同模式的填充区别

python 复制代码
import numpy as np
n = np.arange(20)/2
x = np.sin(n)
h = [-2, -1, 0, 1, 2]

plt.plot(x)
plt.plot(y, label=m, marker='.', color='r')
for m in ["reflect", "constant", "nearest", "mirror", "wrap",]:
    y = sn.convolve1d(x, h, mode=m, cval=2)
    plt.plot(y, label=m)

plt.legend()
plt.grid()
plt.show()

得到图像

相关推荐
小陈phd10 小时前
深度学习之超分辨率算法——SRCNN
python·深度学习·tensorflow·卷积
Leuanghing1 个月前
使用Python生成卡方分布表并导出为Excel文件
python·excel·pandas·scipy·卡方分布表
同元软控1 个月前
CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳
开源·科学计算·ccf·openscs·中国开源大会·系统建模·ccf chinaosc
计算机毕设指导62 个月前
基于Python爬虫与文本挖掘的网络舆情监控系统【附源码】
数据库·hadoop·后端·爬虫·python·django·scipy
cgqyw2 个月前
国内知名的几个镜像源
python·numpy·scipy
Sylvan Ding3 个月前
数值分析作业(第二章):代码+手写计算
matlab·数值计算·北京理工大学
Trouvaille ~3 个月前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算
Trouvaille ~3 个月前
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
python·机器学习·数学建模·数据分析·numpy·科学计算·大数据处理
Vigo*GIS_RS4 个月前
使用python批量计算栅格像元值(像元总值等)
python·数值计算·栅格数据
Py巡航机4 个月前
Scipy||第三章 线性代数 (scipy.linalg)
python·线性代数·scipy