[SciPy-User] Accumulation sum using indirect indexes

Alexander Kalinin alec.kalinin@gmail....
Wed Feb 1 10:34:12 CST 2012


Yes, but for large data sets loops is quite slow. I have tried Pandas
groupby.sum() and it works faster.

2012/2/1 Frédéric Bastien <nouiz@nouiz.org>

> It will be slow, but you can make a python loop.
>
> Fred
> On Jan 31, 2012 3:34 PM, "Alexander Kalinin" <alec.kalinin@gmail.com>
> wrote:
>
>> Hello!
>>
>> I use SciPy in computer graphics applications. My task is to calculate
>> vertex normals by averaging faces normals. In other words I want to
>> accumulate vectors with the same ids. For example,
>>
>> ids = numpy.array([0, 1, 1, 2])
>> n = numpy.array([ [0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1],
>> [0.1, 0.1 0.1] ])
>>
>> I need result:
>> nv = ([ [0.1, 0.1, 0.1], [0.2, 0.2, 0.2], [0.1, 0.1, 0.1]])
>>
>> The most simple code:
>> nv[ids] += n
>> does not work, I know about this. For 1D arrays I use numpy.bincount(...)
>> function. But this function does not work for 2D arrays.
>>
>> So, my question. What is the best way calculate accumulation sum for 2D
>> arrays using indirect indexes?
>>
>> Sincerely,
>> Alexander
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20120201/23f9dc98/attachment.html 


More information about the SciPy-User mailing list