Я хочу применить функцию к ячейкам матрицы, выбранной логической маской. То есть вместо этого пишем:
#given numpy arrays a[dimX][dimY], mask[dimX][dimY]
for i in range(dimX):
for j in range(dimY):
if(mask[i, j]):
a[i, j] +=1
Я хотел бы сделать это, возможно, с помощью одной команды, работающей непосредственно в numpy.
Моя общая цель - ускорить симуляцию, и я не знаю, как применить сложную, условную (как выше) функцию к глобальной матрице. (Для любопытных я пытаюсь реализовать поток воздуха методом решетки Больцмана). Мотивация заключается в том, что только недавно я понял, насколько огромна разница во времени, когда используются простые команды вместо итерации по матрице.
Если ответ не простой, я был бы признателен за более подробную ссылку на некоторые материалы, посвященные проблеме.