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

Todd Miller jmiller at stsci.edu
Fri Jun 25 05:49:12 EDT 2004


On Wed, 2004-06-23 at 18:06, Sebastian Haase wrote:
> 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 ?

This is a bug.  Hopefully I'll get it today.

> 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 ?

This is also a bug.  Fixed in CVS now.

Thanks for the report!

Regards,
Todd





More information about the NumPy-Discussion mailing list