[Numpy-discussion] matrix indexing question
Tue Mar 27 12:16:47 CDT 2007
> Exactly: that was one other thing I found artificial.
> Surely the points will then be wanted as arrays.
> So my view is that we still do not have a use case
> for wanting matrices yielded when iterating across
> rows of a matrix.
It's pretty clear from my perspective: 1-D slices of matrices *must*
be matrices. I gave an intuitive make-it-fit-with-known-notation
explanation, and Charles gave a theoretically-grounded explanation.
There was no objection to this from any quarter.
Given that 1-D slices of matrices must be matrices for deep
mathematical reasons as well as notational compatibility with the
rest of linear algebra -- e.g. that m yields a matrix if m is a
matrix-- it almost certainly would violate the principle of least
surprise for iteration over m (intuitively understood to be choosing m
 then m and so forth) to yield anything other than a matrix.
This can't possibly be what you're asking for, right? You aren't
suggesting that m and list(iter(m)) should be different types?
There are many clear and definite use cases for m being a matrix,
by the way, in addition to the theoretical arguments -- these aren't
hard to come by. Whether or nor there are actual good use-cases for
iterating over a matrix, if you believe that m should be a matrix,
it's madness to suggest that list(iter(m)) should be otherwise.
My opinion? Don't iterate over matrices. Use matrices for linear
algebra. There's no "iteration" construct in linear algebra. The
behavior you find so puzzling is a necessary by-product of the
fundamental behavior of the matrix class -- which has been explained
and which you offered no resistance to.
More information about the Numpy-discussion