NumPy Boolean Array in Index [duplicato]

Sep 20 2020

Supponiamo di avere due array

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

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

Possiamo fare a [b] per ottenere solo i valori di b che sono veri dandoci [1, 4]

Ho provato a fare a [non b] per ottenere quelli falsi ma ho ricevuto un errore. So che posso farlo, a[b == False]ma voglio farlo in modo pitonico.

Qualche soluzione?

Risposte

1 a_guest Sep 20 2020 at 03:59

Puoi usare uno np.logical_noto l' ~operatore :

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