Bonjour à tous,
Je souhaiterais supprimer des lignes d'une matrices de type numpy array.
La particularité serait de supprimer les lignes 1, 5, 9, 13, 17, 21 etc .... Je sais que je dois passer par le modulo.
Pour supprimer une ligne il est possible d'utiliser delete
Cependant j'aurai aimé utiliser cette méthode que j'ai vue sur un site :
La Ligne 9 permet de supprimer les lignes de la matrice Mi dont les éléments sont plus grand que 30 dans la deuxième colonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 >>> import numpy as np >>> Mi = np.array([[1, 2, 3], [4, 100, 6], [100,1,2], [12, 100, 50]]) >>> print Mi [[ 1 2 3] [ 4 100 6] [100 1 2] [ 12 100 50]] >>> M = Mi[~(Mi[:,1] > 30)] >>> print M [[ 1 2 3] [100 1 2]]
Donc plutôt que de faire une boucle sur la matrice et faire un if avec le modulo etc .... est-il possible de supprimer toutes les lignes cité plus haut de la même manière ?
Merci d'avance pour votre aide.
Partager