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)

Exemplematrice à 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.

Exemplematrice à 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