У меня есть двумерный массив масок, который я хочу свернуть вдоль оси 0, используя логическую операцию ИЛИ для значений, которые True
. Мне было интересно, есть ли функция numpy, чтобы сделать этот процесс. Мой код выглядит примерно так:
>>> all_masks
array([[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, True, False, ..., False, True, False],
[False, False, False, ..., False, False, False],
[False, True, False, ..., False, True, False]])
>>> all_masks.shape
(6, 870)
>>> output_mask
array([False, True, False, ..., False, True, False])
>>> output_mask.shape
(870,)
Я достиг output_mask
этого процесса с помощью цикла for. Однако я знаю, что использование цикла for делает мой код медленнее (и немного запутанным), поэтому мне было интересно, можно ли завершить этот процесс с помощью функции numpy или аналогичным образом?
Код для использования свертывающих масок для цикла:
mask_out = np.zeros(all_masks.shape[1], dtype=bool)
for mask in all_masks:
mask_out = mask_out | mask
return mask_out