I mają następujące oznaczenia, które wybiera najpierw elementy tablicy NumPy z logicznym maski index:Użycie wielu poziomów logicznych na masce indeksu w NumPy
import numpy as np
grid = np.random.rand(4,4)
mask = grid > 0.5
życzę użycie drugiego logiczną maski na tym jednym do wybierać obiekty z:
masklength = len(grid[mask])
prob = 0.5
# generates an random array of bools
second_mask = np.random.rand(masklength) < prob
# this fails to act on original object
grid[mask][second_mask] = 100
to nie jest całkiem taki sam problem jak wymienione w tym SO pytanie: Numpy array, how to select indices satisfying multiple conditions? - jak używam generowania liczb losowych, nie chcę mieć do generowania pełną maskę, tylko dla elementów wybranych przez pierwsza maska.
Idealne, właśnie to, czego szukałem. – Hemmer
Czy w opublikowanym fragmencie jest również jakieś kopiowanie tablic? – Hemmer
@Hemmer: Są nowe tablice utworzone przez 'np.where' i' a [second_mask] '. Rozmiar tych tablic zależy od liczby elementów True w maskach i maskach second_ i jest niezależny od wielkości 'grid'. – NPE