如何将一维中值滤波器应用于二维 NumPy 数组的行的过程矢量化?有没有办法避免循环遍历行(0, 1, ..., 19(?我的数据是来自 20 个传感器的时间序列(25000 个样本(。
# Python
import numpy as np
from scipy import signal
a = np.random.rand(20,25000)
window_len = 101
aFiltered = signal.medfilt(a, window_len, axis = 1) # seems like there is no axis option
我的经验主要是使用 MATLAB,我可以在其中指定过滤器应用的轴:
% MATLAB
whichAxis = 1;
medfilt1(a, 101, [], whichAxis); % runs very fast, takes about 100 milliseconds on a laptop with a 3.0 GHz CPU.
我想知道Python是否可以执行相同的功能。
有人可以帮忙吗?
试试这个:
from scipy.ndimage import median_filter
aFiltered=median_filter(a,size=(1,101))