Keith Goodman wrote: > 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.
However, so does sum(a) and numpy.dot(). -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion