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ď č. 1Ak 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