Por que a indexação de matrizes numpy com colchetes e vírgulas difere no comportamento?

Costumo indexar matrizes numpy (matrizes) com colchetes, mas notei que quando quero fatiar uma matriz (matriz) devo usar a notação de vírgula. Por que é isso? Por exemplo,

>>> x = numpy.array([[1, 2], [3, 4], [5, 6]])
>>> x
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> x[1][1]
4                 # expected behavior
>>> x[1,1]
4                 # expected behavior
>>> x[:][1]
array([3, 4])     # huh?
>>> x[:,1]
array([2, 4, 6])  # expected behavior

questionAnswers(2)

yourAnswerToTheQuestion