[Numpy-discussion] numarray.sum should raise exception for wrong axis argument - and slicing ...

Sebastian Haase haase at msg.ucsf.edu
Wed Jun 23 15:07:04 CDT 2004


Hi,
please take a look at this:
>>> na.sum( na.zeros((2,6)) )
[0 0 0 0 0 0]
>>> na.sum( na.zeros((2,6)) , 0)
[0 0 0 0 0 0]
>>> na.sum( na.zeros((2,6)) , 1)
[0 0]
>>> na.sum( na.zeros((2,6)) , 2)
[0 0]
>>> na.sum( na.zeros((2,6)) , 3)
[0 0]
>>> na.sum( na.zeros((2,6)) , 4)
[0 0]
>>> na.sum( na.zeros((2,6)) , -1)
[0 0]
>>> na.sum( na.zeros((2,6)) , -2)
[0 0 0 0 0 0]
>>> na.sum( na.zeros((2,6)) , -3)
[0 0]
>>> na.sum( na.zeros((2,6)) , -4)
[0 0]
>>> 

I think here should be a ValueError exception thrown rather than defaulting to 
the '-1'-axis.  Comments ?

Also this applies to (all?) other functions that have an 'axis' argument.
And further I just found that putting "too many slicings" to an array also 
gets silently ignored:
>>> b.shape
(7, 128, 128, 128)
>>> b[2,2,2,2,3]
Traceback (most recent call last):
  File "<input>", line 1, in ?
IndexError: too many indices.

BUT:
>>> b[2:3 , 2:3 , 2:3 , 2:3 , 2:3 , 2:3]
[[[[ 0.]]]]


I find this very confusing !! Is there any good reason not to have the 
"IndexError" exception in all cases ?

Thanks,
Sebastian Haase





More information about the Numpy-discussion mailing list