NumPy Boolean Array in Index [duplikat]

Sep 20 2020

Powiedzmy, że mamy dwie tablice

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

daje

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

Możemy wykonać a [b], aby uzyskać tylko te wartości b, które są prawdziwe, dając nam [1, 4]

Próbowałem zrobić [nie b], aby uzyskać te, które są fałszywe, ale otrzymałem błąd. Wiem, że mogę to zrobić, a[b == False]ale chcę to zrobić w Pythonie.

Jakieś rozwiązanie?

Odpowiedzi

1 a_guest Sep 20 2020 at 03:59

Można skorzystać z jednego np.logical_notlub z ~operatorem :

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