如何使用numpy矩阵有条件地做某事

时间:2019-04-25 22:36:25

标签: python arrays numpy

我想将一个函数应用于由布尔掩码选择的矩阵单元格。也就是说,改写:

#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命令而不是遍历矩阵在时间方面产生了巨大的差异。

如果答案不是简单的,我将不胜感激地链接到一些解决材料的问题。

1 个答案:

答案 0 :(得分:0)

您可以使用np.where():

a = np.where(mask > 0, a + 1, a)