yeah...let indices do your heavy lifting in normalize:

```
>>> X[2,:][:,-3:]  # I want the last 3 columns of row 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sympy\matrices\expressions\matexpr.py", line 197, in __getitem__
    return MatrixSlice(self, i, j)
  File "sympy\matrices\expressions\slice.py", line 53, in __new__
    raise IndexError()
IndexError
>>> slice(-3,None,None).indices(10)
(7, 10, 1)
>>> X[2,:][:,7:10]
X[2, 7:10]
>>> X[2][:,slice(*slice(-3,None,None).indices(10))]
X[2, 7:10]
```