Python Filtre Médian pour les 1D tableau numpy
J'ai un numpy.array
avec une dimension dim_array
. Je suis impatient d'obtenir un filtre médian comme scipy.signal.medfilt(data, window_len)
.
C'est en fait ne fonctionne pas avec numpy.array
peut-être parce que la dimension est (dim_array, 1)
et pas (dim_array, )
.
Comment faire pour obtenir un tel filtre?
Ensuite, une autre question, comment puis-je obtenir autre filtre, c'est à dire, min, max, moyenne?
- Peut-être vous voulez juste pour remodeler/aplatir votre (N,1) tableau (N,).
- Alors peut-être que j'ai à faire:
data = np.reshape(data, len(data))
- Mieux
data.flatten(order='C')
; ce travail! Merci @Jean Zwinck. Maintenant, pour la deuxième question, comment puis-je obtenir ces autres filtres?
Vous devez vous connecter pour publier un commentaire.
Basé sur
ce post
, nous avons pu créer des fenêtres coulissantes pour obtenir un2D
tableau de ces fenêtres défini en tant que lignes. Ces fenêtres ne serait qu'une vue sur ladata
tableau, donc pas de consommation de la mémoire et donc serait assez efficace. Ensuite, il nous serait tout simplement l'utilisation de cesufuncs
le long de chaque ligneaxis=1
.Ainsi, par exemple
sliding-
médiane peut être calculée comme lePour les autres
ufuncs
, il suffit d'utiliser l'respectivesufunc
noms :np.min
,np.max
&np.mean
. Veuillez noter que ce service est destiné à donner une solution générique à utiliserufunc
fonctionnalités prises en charge.Pour le meilleur rendement, il faut toujours regarder dans les fonctions spécifiques qui sont intégrés à ces fins. Pour les quatre fonctions, nous avons les objets internes, comme le
Médiane :
scipy.signal.medfilt
.Max :
scipy.ndimage.les filtres.maximum_filter1d
.Min :
scipy.ndimage.les filtres.minimum_filter1d
.Dire :
scipy.ndimage.les filtres.uniform_filter1d