[Numpy-discussion] buggy buggy bugyy: format and casting ==> BUG in numpy.sum?

Travis Oliphant oliphant.travis at ieee.org
Mon Sep 18 13:52:24 CDT 2006

Eric Emsellem wrote:
> Hi again
> after some hours of debugging I finally (I think) found the problem:
> numpy.sum([[0,1,2],[2,3,4]])
> 24
> numpy.sum([[0,1,2],[2,3,4]],axis=0)
> array([2, 4, 6])
> numpy.sum([[0,1,2],[2,3,4]],axis=1)
> array([3, 9])
> Isn't the first line supposed to act as with "axis=0" by default (see
> help numpy.sum!)...???
> Not setting axis=0 it sums everything!
See the Release Notes page on www.scipy.org.  It documents everything 
that has changed.  Several things will break old code as indicated. 

There are several options for keeping old code working:

1) Use the numpy.oldnumeric compatibility layer which keeps the same 
definitions and defaults as Numeric

2) Use conversion tools (like the recently added fix_default_axis) tool 
to automatically insert axis=0 arguments in all code where it is not 
present (or to automatically change the import to oldnumeric).

For the future, you must specify which axis you mean for a Nd array or 
the code will assume you meant to work over the entire N-d array.

We all recognize this is a pain to change.  That's why the backward 
compatibilty options are avaiable and the tools have been written.  
Believe me, I know what a pain it is.  I have had to keep SciPy and 
Matplotlib working with all the changes to NumPy. 


More information about the Numpy-discussion mailing list