[Numpy-discussion] how to tally the values seen
Gökhan Sever
gokhansever at gmail.com
Wed Apr 14 02:27:02 EDT 2010
On Wed, Apr 14, 2010 at 1:10 AM, Peter Shinners <pete at 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)
>
> 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.
>
> What is the most efficient way to do this?
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
--
Gökhan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100414/0d7d47f0/attachment.html>
More information about the NumPy-Discussion
mailing list