根据numpy数组中的条件应用公式

Applying formula based on condition in numpy array

我有 numpy 数组:

wk = np.array([1, 0, 3, -4])

如何根据特定条件应用公式,例如如何对 wk 中的所有正值求和。我试过了

if wk.all > 0:
    np.sum(wk)

但是它抛出了一个错误。

np.sum(wk[wk > 0])

就是您要找的。 wk > 0 创建一个与 wk 大小相同的布尔数组,在 wk > 0 的任何地方都为真。 wk[wk > 0] 然后评估为一个数组,该数组仅包含 wk 的那些元素,其中前一个数组为真,最后 np.sum 总结这些值。

对于可以使用的正值:

import numpy as np
wk = np.array([1, 0, 3, -4])
sum = wk[wk>0].sum() # returns array of elements which are positive and then adds them 

类似地,您可以将条件放入 wk[condition_here]