/ / Jak zindeksować tablicę numpy w podzbiorze tablic zmiennych mniejszych niż wymiary tablicy numpy? - python, numpy

Jak zindeksować tablicę numpy na podzbiorze tablic o rozmiarach mniejszych niż numpy array? - python, numpy

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 № 1

Jeś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