ОК, просто для пояснения, давайте сделаем простой пример
A=diag(arange(0,10,1))
дает
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 2, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 3, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 4, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 5, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 6, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 7, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 8, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 9]])
тогда
A[0][0:4]
1010 * дает *
array([0, 0, 0, 0])
это первая строка, элементы от 0 до 3. Но
A[0:4][1]
не дает первые 4 строки, 2-й элемент в каждой. Вместо этого мы получаем
array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0])
то есть весь 2-й столбец.
A[0:4,1]
дает
array([0, 1, 0, 0])
Я уверен, что для этого есть очень веская причина, которая имеет смысл для программистов.
но для тех из нас, кто не имеет отношения к этой великой религии, это может сбить с толку.