110 votes

Opérateurs booléens vs opérateurs Bitwise

Je suis confus quant au moment où je devrais utiliser les opérateurs booléens par rapport aux opérateurs bitwise

  • and vs &
  • or vs |

Quelqu'un pourrait-il m'éclairer sur quand utiliser chacun d'eux et quand l'utilisation de l'un sur l'autre affectera mes résultats ?

6voto

C8H10N4O2 Points 9172

Si vous essayez de faire des opérations booléennes par éléments en numpy, la réponse est quelque peu différente. Vous pouvez utiliser & et | pour les opérations booléennes par élément, mais and et or retourneront l'erreur de valeur.

Pour être sûr, vous pouvez utiliser les fonctions logiques engourdies.

np.array([True, False, True]) | np.array([True, False, False])
# array([ True, False,  True], dtype=bool)

np.array([True, False, True]) or np.array([True, False, False])
# ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

np.logical_or(np.array([True, False, True]), np.array([True, False, False]))
# array([ True, False,  True], dtype=bool)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X