Tableau booléen NumPy dans l'index [duplicate]

Sep 20 2020

Disons que nous avons deux tableaux

a = np.array([1,2,3,4]).reshape(2,2)
b = np.array([True, False, False, True]).reshape(2,2)

donne

a = [[1, 2],
     [3, 4]] 
b = [[True, False],
     [False, True]]

On peut faire a [b] pour obtenir seulement les valeurs de b qui sont vraies nous donnant [1, 4]

J'ai essayé de faire un [pas b] pour obtenir ceux qui sont faux mais j'ai eu une erreur. Je sais que je peux faire a[b == False]mais je veux le faire d'une manière pythonique.

Toute solution?

Réponses

1 a_guest Sep 20 2020 at 03:59

Vous pouvez utiliser l'un np.logical_notou l' autre ou l' ~opérateur :

>>> a[np.logical_not(b)]
>>> a[~b]