Vous pouvez utiliser le tilde si le dtype
du tableau est booléen et que vous êtes sûr que cela ne changera pas lorsque le logiciel évoluera. Cependant, np.logical_not
présente deux avantages :
- Cela fonctionne également pour les tableaux d'objets, qui peuvent facilement apparaître si des
np.nan
ou d'autres objets se retrouvent dans votre tableau.
- Son sens est clair pour toute personne ayant quelques notions de logique.
Il y a aussi np.invert
mais il ne fonctionne pas avec les tableaux d'objets et le mot est ambigu.
~np.array([False, True], dtype=bool)
Out[7]: array([ True, False])
~np.array([False, True], dtype=object)
Out[9]: array([-1, -2], dtype=object)
np.invert([True, False])
Out[4]: array([False, True])
np.invert((np.array([True, False], dtype=object)))
Out[5]: array([-2, -1], dtype=object)
np.logical_not(np.array([False, True], dtype=bool))
Out[8]: array([ True, False])
np.logical_not(np.array([False, True], dtype=object))
Out[10]: array([True, False], dtype=object)