【发布时间】:2019-04-26 06:57:35
【问题描述】:
我想将一个函数应用于由布尔掩码选择的矩阵单元格。也就是说,改为写:
#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 命令而不是遍历矩阵在时间上的巨大差异。
如果答案不简单,我将不胜感激链接到一些更详细的解决问题的材料。
【问题讨论】:
-
a[mask] += 1。这附近的某个地方肯定有重复的,但是搜索这种东西很难。 -
This 是迄今为止我发现的最好的欺骗目标。