矢量化 1D 中值滤波器 对于 Python 中的 2D 数组



如何将一维中值滤波器应用于二维 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))

最新更新