I tend to index numpy arrays (matrices) with brackets, but I\'ve noticed when I want to slice an array (matrix) I must use the comma notation. Why is this? For example,
This:
x[:, 1]
means "take all indices of x along the first axis, but only index 1 along the second".
This:
x[:][1]
means "take all indices of x along the first axis (so all of x), then take index 1 along the first axis of the result". You're applying the 1 to the wrong axis.
x[1][2] and x[1, 2] are only equivalent because indexing an array with an integer shifts all remaining axes towards the front of the shape, so the first axis of x[1] is the second axis of x. This doesn't generalize at all; you should almost always use commas instead of multiple indexing steps.