I know this just got added, but I wish that X[2] had to be explicitly written as X[2,:] so it is self-documenting when someone sees it.

Otherwise, I understand what you've done with the slices and am +1. Assuming you are letting slice.indices(size) tell you what the indices are then it looks ok, otherwise "a welter of confusing details" could be lurking (http://docs.python.org/release/2.3.5/whatsnew/section-slices.html).