can this be made faster?

A. M. Archibald peridot.faceted at
Mon Oct 9 14:59:58 CDT 2006

> > > > c contains arbitray floats.
> > > > essentially it is to compute class totals
> > > > as in total[class[i]] += value[i]

> > This seems like a rather common operation - I know I've needed it on
> > at least two occasions - is it worth creating some sort of C
> > implementation? What is the appropriate generalization?
> Some sort of indirect addressing infrastructure. But it looks like this
> could be tricky to make safe, it would need to do bounds checking at the
> least and would probably work best with a contiguous array as the target. I
> could see some sort of low-level function called argassign(target, indirect
> index, source) that could be used to build more complicated things in
> python.

If it were only assignment that was needed, fancy indexing could
already handle it. The problem is that this is something that can't
*quite* be done with the current fancy indexing infrastructure - every
time an index comes up we want to add the value to what's there,
rather than replacing it. I suppose histogram covers one major
application; in fact if histogram allowed weightings ("count this
point as -0.6") it would solve the OP's problem.

A. M. Archibald

Take Surveys. Earn Cash. Influence the Future of IT
Join's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash

More information about the Numpy-discussion mailing list