Python:如何在数组中进行条件运算

时间:2018-07-26 11:35:39

标签: python numpy

我有一个维度为numpy的{​​{1}}数组M和一个包含该数组单元格信息的数据框NxM

如果必须将值添加到tmp的单元格中,我会这样做

M

但是我只想将值添加到其中M[tmp.a, tmp.b] = tmp1.n 的那些单元格中,例如

M < tmp.n

我以这种方式解决了

M[M[tmp.a, tmp.b] < tmp1.n] = tmp1.n

2 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则可以执行以下操作:

M[tmp.a, tmp.b] = max(tmp1.n, M[tmp.a, tmp.b])

答案 1 :(得分:0)

可以使用Numpy logical indexing

# a logical (boolean) array
log = M < tmp.n

# apply it to source and target and use `+=` to add the values
M[log] += tmp.n[log]

如果数组的形状不同,则还可以选择特定的尺寸:

log = M[:, 0] < tmp.n

# apply it to source and target and use `+=` to add the values
M[log, 0] += tmp.n[log]