Návrat indexů "false" hodnot boolean array

0

Otázka

Mám pocit, že tohle je opravdu jednoduchá otázka, ale nemůžu najít řešení.

Vzhledem k boolean array of true/false hodnot, potřebuji výstup všechny indexy s hodnotou "false". Mám způsob, jak to udělat za pravdivé:

test = [ True False True True]

test1 = np.where(test)[0]

To se vrací [0,2,3], jinými slovy odpovídající index pro každou hodnotu true. Teď jsem si to samé za nepravdivé, kde výstup by být [1]. Nevíte někdo jak na to?

boolean numpy python
2021-11-22 22:48:41
3

Nejlepší odpověď

5

Použití np.where(~test) místo np.where(test).

2021-11-22 22:57:54
0

S enumerate:

>>> test = [True, False, True, True]
>>> [i for i, b in enumerate(test) if b]
[0, 2, 3]
>>> [i for i, b in enumerate(test) if not b]
[1]
2021-11-22 22:50:54

Můžete také použít itertools.groupby dělat obojí v jednom záběru, ale pak typ konverze je trochu messier
Alexander

Bylo to trochu nejasné, ale OP je určitě použití numpy, takže to by neměl být používán
juanpa.arrivillaga
0

Pomocí explicitní np.array().

import numpy as np
test = [True, False, True, True]
a = np.array(test)
test1 = np.where(a==False)[0]    #np.where(test)[0]
print(test1)
2021-11-22 23:03:50

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................