[Numpy-discussion] sum of positive values in an array

Zachary Pincus zachary.pincus@yale....
Fri Sep 5 09:33:17 CDT 2008


>
> Hi, probably a basic question, but I'm looking for a neat way to sum
> all the positive values in an array of floats.  I'm currently doing it
> the hard way, but am hoping there is some cunning and elegant syntax I
> can use instead

Fancy indexing's my favorite cunning and elegant syntax:

a = numpy.random.randn(100)
a.sum()
a > 0 # gives a boolean array that's True where the elements of a are  
 > 0.
a[a > 0] # retrieve from a only the elements with True in the boolean  
array.
a[a > 0].sum() # your desired result.

Note that you can also fancy-index with a list/array of indices, as  
well as a boolean "mask" array:
a[[1, 40, 55]] # pulls just the values at index 1, 40, and 55 out of a  
into a shape (3,) array.

Zach


More information about the Numpy-discussion mailing list