[Numpy-discussion] how to tally the values seen

Warren Weckesser warren.weckesser@enthought....
Wed Apr 14 01:34:17 CDT 2010


Gökhan Sever wrote:
>
>
> On Wed, Apr 14, 2010 at 1:10 AM, Peter Shinners <pete@shinners.org 
> <mailto:pete@shinners.org>> wrote:
>
>     I have an array that represents the number of times a value has been
>     given. I'm trying to find a direct numpy way to add into these sums
>     without requiring a Python loop.
>
>     For example, say there are 10 possible values. I start with an
>     array of
>     zeros.
>
>      >>> counts = numpy.zeros(10, numpy.int <http://numpy.int>)
>
>     Now I get an array with several values in them, I want to add into
>     counts. All I can think of is a for loop that will give my the
>     results I
>     want.
>
>
>      >>> values = numpy.array((2, 8, 1))
>      >>> for v in values:
>     ...    counts[v] += 1
>      >>> print counts
>     [0 1 1 0 0 0 0 0 1 0]
>
>
> This is easy:
>
> I[3]: a
> O[3]: array([ 0.,  1.,  1.,  0.,  0.,  0.,  0.,  0.,  1.,  0.])
>
> I[4]: a = np.zeros(10)
>
> I[5]: b = np.array((2,8,1))
>
> I[6]: a[b] = 1
>
> I[7]: a
> O[7]: array([ 0.,  1.,  1.,  0.,  0.,  0.,  0.,  0.,  1.,  0.])
>
> Let me think about the other case :)
>
>
>     I also need to handle the case where a value is listed more than once.
>     So if values is (2, 8, 1, 2) then count[2] would equal 2.
>


numpy.bincount():


In [1]: import numpy as np

In [2]: x = np.array([2,8,1,2,7,7,2,7,0,2])

In [3]: np.bincount(x)
Out[3]: array([1, 1, 4, 0, 0, 0, 0, 3, 1])



Warren

>     What is the most efficient way to do this?
>     _______________________________________________
>     NumPy-Discussion mailing list
>     NumPy-Discussion@scipy.org <mailto:NumPy-Discussion@scipy.org>
>     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
>
> -- 
> Gökhan
> ------------------------------------------------------------------------
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>   



More information about the NumPy-Discussion mailing list