我想将一个函数应用于由布尔掩码选择的矩阵单元格。也就是说,改写:
#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中运行的命令来做到这一点。
我的总体目标是加快仿真速度,我不知道如何将复杂的,有条件的(如上)函数应用于全局矩阵。 (对于好奇的人,我尝试通过玻尔兹曼格子法实现气流)。动机是我直到最近才使用numpy命令而不是遍历矩阵在时间方面产生了巨大的差异。
如果答案不是简单的,我将不胜感激地链接到一些解决材料的问题。
答案 0 :(得分:0)
您可以使用np.where():
a = np.where(mask > 0, a + 1, a)