我有以下代碼首先選擇NumPy的陣列的元件與一個邏輯索引掩碼:在NumPy的
import numpy as np
grid = np.random.rand(4,4)
mask = grid > 0.5
我希望使用第二個布爾掩模針對這一個挑選出與對象:
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
這是不是很在這太問題列出了同樣的問題: Numpy array, how to select indices satisfying multiple conditions? - 因爲我使用的隨機數生成,我不希望有生成一個完整的面具,只針對所選的元素第一個面具。
完美,正是我一直在尋找。 – Hemmer
也有任何複製您發佈的代碼段中涉及的數組? – Hemmer
@Hemmer:有'np.where'和'[second_mask]'創建了新的數組。這些數組的大小取決於'mask'和'second_mask'中True元素的數量,並且與'grid'的大小無關。 – NPE