Am 27.10.2013 22:56, schrieb Tim Peters:
[Guido]
I wouldn't take out negative strides completely, but I might consider deprecating lower and upper bounds other than None (== missing). So a[::-1] would still work, and a[None:None:-1] would be a verbose way of spelling the same,
Happy idea.
but a[-1:-6:-1] would be deprecated.
Not sure I've _ever_ seen that in real life. [...]
Before such a change is considered, I'd like to see the numpy community consulted; numpy users probably use slicing more than anyone else. At least it should be possible to integrate the new slicing without breaking too many other numpy behavior. As a datapoint, Matlab negative-stride slicing is similar to Python, but it is less confusing (IMO) since the slices are inclusive on both ends. Let "a" be a range from 1 to 10:
a(2:7) % slicing is done with parens; 1-based indexing [2 3 4 5 6 7] a(2:2:7) % the stride is the middle value [2 4 6] a(2:-1:7) % same as in Python [] a(7:-1:2) % a(i:-1:j) == reverse of a(j:1:i) due to end-inclusive [7 6 5 4 3 2] a(7:-2:2) % but obviously not so for non-unity stride [7 5 3]
cheers, Georg