>>> from pandac.PandaModules import Vec3
>>> import numpy
>>> l = []
>>> l.append( Vec3(1,1,1) )
>>> l.append( Vec3(1,1,1) )
>>> l.append( Vec3(1,1,1) )
>>> Vec3(1,1,1)+Vec3(1,1,1)
Vec3(2, 2, 2)
>>> sum(l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'libpanda.Vec3'
>>> numpy.sum(l)
9.0
>>>
i want some fast (fast == not for loop in pure python but numpy velocity) method to achive:
>>> my_smart_sum(l)
Vec3(3,3,3)
Try this:
Or, with numpy, this:
The speed depends in the implementation of the vector-addition. You should use
timeitto determine which method is fastest. This could look something like this:The first string you pass is the setup-statement – this will not be included in the timing. The second string you pass is the code you actually want to time. I don’t know anything about
pandac, but sometimes number-crunching loops can be sped up a lot using Cython.