On Jun 7, 2012, at 4:32 AM, Paul Anton Letnes wrote:


On 7. juni 2012, at 10:30, Thouis (Ray) Jones wrote:

I've opened a PR at https://github.com/numpy/numpy/pull/296 for discussion.

A typical result

np.zeros((3,3))[[1,2,3]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: index 3 is out of bounds for axis 0: [-3,3)

Ray Jones
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


I would prefer:
IndexError: index 3 is out of bounds for axis 0: [-3,2]
as I find the 3) notation a bit weird - after all, indices are not floats, so 2.999 or 2.3 doesn't make sense as an index.

Actually, with slicing, you can attempt indexing using floats (as referred to here: http://stackoverflow.com/questions/8514547/why-ndarray-allow-floating-point-index), so I disagree with the integer notation [-3,2]

I actually prefer the subsequent suggestion of reporting the shape, since that's what I always check when debugging index errors anyway -- having it in the error message would save me a ton of time.



An alternative is to not refer to negative indices and say
IndexError: index 3 is out of bounds for axis 0, shape was: (3,)
(print more axes when the number of axes is higher.)

BTW, I'm really glad someone is taking an interest in these error messages, it's a great idea!


… an enthusiastic +1!

Paul