Opération logique
Opération logique et ou
Pour une matrice s, la syntaxe utilisée pour connaître la position des éléments de s vérifiant la condition est la suivante :
Condition | Écriture python-numpy |
\(s_{ij} \in ]a,b[\) | np.nonzero(np.logical_and(s>a, s<b)) |
\(s_{ij} \in [a,b]\) | np.nonzero(np.logical_and(s>=a, s<=b)) |
\(s_{ij} \notin ]a,b[\) | np.nonzero(np.logical_or(s<=a, s>=b)) |
\(s_{ij} \notin [a,b]\) | np.nonzero(np.logical_or(s<a, s>b)) |
\(s_{ij}=a\) | np.nonzero(s==a) |
Exemple : matrice à une dimension
x = np.array([1, 10, 11, 4, 9, 25],np.float32)
Position des éléments compris entre 10 et 20
np.nonzero(np.logical_and(x >= 10, x <= 20))
Le résultat est :
(array([1, 2], dtype=int64),)
Les parenthèses permettent de définir les indices des éléments vérifiant la condition pour chaque dimension.
Le nombre d'élément vérifiant la condition est donné par la taille :
np.nonzero(np.logical_and(x >= 10, x <= 20))[0].shape
Remarque :
Les parenthèses définissent en python un type de variable appelé tuple.
Exemple : matrice à deux dimensions
x = np.array([[1, 10], [11, 4], [9, 25]],np.float32)
Position des éléments plus petit que 10 et plus grand que 20
np.nonzero(np.logical_or(x < 10, x > 20))
Le résultat est :
(array([0, 1, 2, 2], dtype=int64), array([0, 1, 0, 1], dtype=int64))
Les parenthèses définissent les indices de lignes et colonnes vérifiant la condition.
Le nombre d'élément vérifiant la condition est donné par la taille :
np.nonzero(np.logical_or(x < 10, x > 20))[0].shape