/ / Ako indexovať pole numpy na podsúbore poľa boolov, ktorý je menší ako dimenzia poľa pole? - python, numpy

Ako indexovať indexové pole na podsúbore poľa boolov, ktoré sú menšie ako dimenzia pole numpy? - python, numpy

Moja otázka je inšpirovaná inou otázkou: Priesečník 2d a 1d Numpy Hľadám stručné riešenie, ktoré nepoužíva in1d

Toto je nastavenie. mám numpy array z bools čo mi hovorí numpy array A Mal by som nastaviť rovnú 0, volal listed_array, Chcem však ignorovať informácie v prvých 3 stĺpcoch listed_array a len nastaviť A na nulu, ako je uvedené v ďalších stĺpcoch listed_array.

Viem, že nasledujúce je nesprávne:

A[listed_array[:, 3:]] = 0

Viem tiež, že môžem vložiť túto podskupinu listed_array s volaním na hstack, a to prinesie správny výstup, ale je tu niečo stručnejšie?

odpovede:

1 pre odpoveď č. 1

Ak chápem túto otázku, malo by to urobiť:

A[:, 3:][listed_array[:, 3:]] = 0

čo je stručná verzia

mask3 = listed_array[:, 3:]
A3 = A[:, 3:]   # This slice is a *view* of A, so changing A3 changes A.
A3[mask3] = 0