The following does not apply to use, but shows how the operation is “parsed”.
class X:
def __getitem__(self, index):
return index
X()[:,:]
>> (slice(None,None,None), slice(None,None,None))
And with different meanings for clarity:
X()[0, 1:, 3:4, 5:6:7]
>> (0, slice(1,None,None), slice(3,4,None), slice(5,6,7))
So, bearing in mind img[o:,:]how img[o:, :], how
img.__getitem__( (slice(o,None,None), slice(None,None,None)) )