NumPy Boolean Array im Index [Duplikat]

Sep 20 2020

Angenommen, wir haben zwei Arrays

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

gibt

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

Wir können a [b] tun, um nur die Werte von b zu erhalten, die wahr sind und uns geben [1, 4]

Ich habe versucht, a [nicht b] zu tun, um diejenigen zu erhalten, die falsch sind, aber einen Fehler erhalten haben. Ich weiß, dass ich es kann, a[b == False]aber ich möchte es auf pythonische Weise tun.

Irgendeine Lösung?

Antworten

1 a_guest Sep 20 2020 at 03:59

Sie können entweder np.logical_notoder den ~Operator verwenden :

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