On 2/3/07, Stephen Simmons <[EMAIL PROTECTED]> wrote:
>  Does anyone know why there is an order of magnitude difference
>  in the speed of numpy's array.sum() function depending on the axis
>  of the matrix summed?
>
>  To see this, import numpy and create a big array with two rows:
>     >>> import numpy
>     >>> a = numpy.ones([2,1000000], 'f4')
>
>  Then using ipython's timeit function:
>                                                    Time (ms)
>     sum(a)                                           20
>     a.sum()                                           9
>     a.sum(axis=1)                                     9
>     a.sum(axis=0)                                   159
>     numpy.dot(numpy.ones(a.shape[0], a.dtype), a)    15
>
>  This last one using a dot product is functionally equivalent
>  to a.sum(axis=0), suggesting that the slowdown is due to how
>  indexing is implemented in array.sum().

I don't know how much time this would account for, but a.sum(0) has to
create a much larger array than a.sum(1) does.
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to