[SciPy-user] Count

Stefan van der Walt stefan at sun.ac.za
Thu Feb 21 18:38:44 EST 2008


On Thu, Feb 21, 2008 at 05:07:59PM -0500, David Warde-Farley wrote:
> Hi,
> 
> One solution is to do a boolean comparison and then call sum() on the  
> resulting boolean array. It'll treat the True's as 1's and so you end  
> up with the number of occurrences.
> 
> i.e.
> 
> In [2]: x = array([2,2,2,2,3,4,5,6,7,8])
> 
> In [3]: x == 2
> Out[3]: array([ True,  True,  True,  True, False, False, False, False,  
> False, False], dtype=bool)
> 
> In [4]: sum(x == 2)
> Out[4]: 4
> 
> 
> There might be other ways, of course.

If you need to know the occurrence of all values, you can calculate
the histogram:

In [32]: x = np.array([2,2,2,2,3,4,5,6,7,8])

In [33]: np.histogram(x,np.unique(x))
Out[33]: (array([4, 1, 1, 1, 1, 1, 1]), array([2, 3, 4, 5, 6, 7, 8]))

Regards
Stefan



More information about the SciPy-User mailing list