Как можно векторизовать процесс применения 1D медианного фильтра к строкам массива 2D NumPy? Есть ли способ избежать зацикливания строк (0, 1, ..., 19)? Мои данные - это временные ряды (25000 выборок) от 20 датчиков.
# 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 выполнять те же функции.
Может ли кто-нибудь помочь?