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

我有一个 维度numpy数组和一个包含该数组单元格信息的数据框。MNxMtmp


如果必须将值添加到的单元格中M,我可以


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

但是我只想将值添加到其中的M < tmp.n像这样的单元格中


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

我以这种方式解决了


s = shape(M)

M0 = np.zeros((s[1], s[0]))

M0[tmp1.a, tmp1.b] += tmp1.n

idx = np.where(M < M0)

M[idx[:][0], idx[:][1]] = M0[idx[:][0], idx[:][1]]


白衣染霜花
浏览 271回答 2
2回答

MYYA

这可以使用Numpy逻辑索引来完成# a logical (boolean) arraylog = M < tmp.n# apply it to source and target and use `+=` to add the valuesM[log] += tmp.n[log]如果数组的形状不同,则还可以选择特定的尺寸:log = M[:, 0] < tmp.n# apply it to source and target and use `+=` to add the valuesM[log, 0] += tmp.n[log]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python