Moje pytanie jest inspirowane innym: Przecięcie macierzy Numpy 2d i 1d Szukam zwięzłego rozwiązania, którego nie używam in1d
Konfiguracja jest taka. mam numpy array
z bools
powiedz mi, jakie wartości numpy array A
Powinienem ustawić równy 0, zwany listed_array
. Jednak chcę zignorować informacje w pierwszych 3 kolumnach listed_array
i ustawiaj tylko A na zero, jak wskazano w innych kolumnach listy_tablicy.
Wiem, że następujące informacje są nieprawidłowe:
A[listed_array[:, 3:]] = 0
Wiem też, że mogę ochraniać ten podzbiór listed_array
z zaproszeniem do hstack
, a to da prawidłowy wynik, ale czy jest coś bardziej zwięzłego?
Odpowiedzi:
1 dla odpowiedzi № 1Jeśli rozumiem pytanie, powinno to zrobić:
A[:, 3:][listed_array[:, 3:]] = 0
która jest zwięzłą wersją
mask3 = listed_array[:, 3:]
A3 = A[:, 3:] # This slice is a *view* of A, so changing A3 changes A.
A3[mask3] = 0