【问题标题】:How to do something conditionally with numpy matrix如何使用 numpy 矩阵有条件地做某事
【发布时间】: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 命令而不是遍历矩阵在时间上的巨大差异。

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

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

你可以使用 np.where() :

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多