# [Numpy-discussion] vectorizing histogram-like computation

Todd Miller jmiller at stsci.edu
Mon Jun 20 12:44:16 EDT 2005

```On Mon, 2005-06-20 at 15:36, Piotr Luszczek wrote:
> Perry Greenfield wrote:
> >
> > On Jun 20, 2005, at 3:09 PM, Piotr Luszczek wrote:
> >
> >> All,
> >>
> >> I apologize if this is a dupe. I haven't seen it where I looked.
> >>
> >> There is numarray.numeric.histogram and numarray.mlab.histogram.
> >> What they do is this (more or less):
> >>
> >> for idx in arr:
> >>    histogram[idx] += 1
> >>
> >> What I want to do is:
> >>
> >> for idx in arr:
> >>    result[idx] ^= value
> >>
> >> Doing:
> >>
> >> result[arr] ^= value
> >>
> >> doesn't work. Which is not surprising because:
> >>
> >> histogram[arr] += 1
> >>
> >> doesn't work either.
> >>
> >> My question is whether there is a way to do it (the XOR example)
> >> without using a for loop.

>>> a = na.zeros((10,))
>>> a[[1,3,5]] ^= 100
>>> a
array([  0, 100,   0, 100,   0, 100,   0,   0,   0,   0])

It seems to work to me.  What is it that you meant?

Regards,
Todd

> >>
> >> Thanks,
> >>
> >> Piotr
> >
> >
> > Not that I'm aware of. It suggests that there may be a need to expand on
> > the histogram-like functionality to handle this sort of thing, though I
> > wonder how often it would be used.
>
> Sparse matrix computations use indirection all the time.
> And being able to the calculations in C and in-place would be a good
> thing. But then again I don't know if many numarray users use
> sparse matrices rather than just make the matrix dense and
> use LAPACK.
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> informative Webcasts and more! Get everything you need to get up to