У меня есть два Numpy массива:значения закатывается в Numpy массивы индексируются кусочком и две булевы массивы
a = np.arange(100*100).reshape(100,100)
b = np.random.rand(100, 100)
У меня также есть кортеж срезов, чтобы извлечь определенную часть массива:
slice_ = (slice(5, 10), slice(5, 10))
Я тогда набор логических индексов, чтобы выбрать определенную часть этого кусочка:
indices = b[slice_] > 0.5
Если я хочу установить эти показатели на другое значение, я могу сделать это легко:
a[slice_][indices] = 42
Однако, если я создаю еще один набор логических индексов для выбора определенной части индексированного массива:
high_indices = a[slice_][indices] > 700
, а затем попробовать и установите значение массива в этих индексах:
a[slice_][indices][high_indices] = 42 # Doesn't do anything!
Я подумал, что мне нужно и два массива индексов вместе, но они разные формы: indices
имеет форму (5, 5)
и high_indices
имеет форму (12,)
.
Я думаю, что я попал в ужасную путаницу, пытаясь сделать что-то относительно простое. Как я могу индексировать эти два булевых массива таким образом, чтобы я мог установить значения массива?