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