Oh! So it is not a bug, it is a feature, which is completely
incompatible with other array based languages (MATLAB and Fortran). To
me, I can not find a single explanation why it is so in numpy.
Taking submatrices from a matrix is a common operation and the syntax
above is very natural to take submatrices, not a weird diagonal stuff.
i.e.,
c = np.random.randn(100,100)
d = c[[0,3],[2,3]]
should NOT produce two numbers! (and you can not do it using slices!)
In MATLAB and Fortran
c(indi,indj)
will produce a 2 x 2 matrix.
How it can be done in numpy (and why the complications?)
So, please consider this message as a feature request.