Masque booléen

Idée

A>2 ne renvoie pas un nombre mais un tableau de la même forme que A, rempli de Vrai et Faux selon que chaque case dépasse 2.

Pourquoi

A>2 ne renvoie pas un nombre mais un tableau de la même forme que A, rempli de Vrai et Faux selon que chaque case dépasse 2. Multiplier ce masque par A — (A>2)*A — éteint les cases où la condition est fausse (Faux compte comme 0) et garde celles où elle est vraie. C'est ainsi qu'on filtre sans boucle.

Outil

Comme la fonction indicatrice $\mathbf{1}_{A>2}$ : un tableau qui vaut 1 où la condition est vraie, 0 sinon, qu'on multiplie pour ne garder que ces cases.

Formule

Le notebook Cell 20 utilise un masque multiplicatif sur le tableau A créé Cell 4. Sans regarder, donner la valeur résultat élément par élément.

Piège

On écrit (A>1) and (A<5) — Python lève 'truth value ambiguous'. Pourquoi ? and/or sont paresseux et veulent un booléen unique de chaque côté. Numpy fournit &/| qui sont vectorisés. Il faut aussi parenthéser à cause de la précédence : (A>1) & (A<5). Très, très, très fréquent comme erreur — coûte 5 min à chaque fois qu'on l'oublie.