On Thu, Feb 21, 2008 at 07:10:24PM -0500, Alan G Isaac wrote: > > On Thu, Feb 21, 2008 at 12:08:32PM -0500, Alan G Isaac wrote: > >> a matrix behavior that I find bothersome and unnatural:: > > >> >>> M = N.mat('1 2;3 4') > >> >>> M[0] > >> matrix([[1, 2]]) > >> >>> M[0][0] > >> matrix([[1, 2]]) > > > On Fri, 22 Feb 2008, Stefan van der Walt apparently wrote: > > This is exactly what I would expect for matrices: M[0] is > > the first row of the matrix. > > Define what "first row" means! > There is no standard definition that says this is means the > **submatrix** that can be created from the first row. > Someone once pointed out on this list that one might > consider a matrix to be a container of 1d vectors. For NumPy, > however, it is natural that it be a container of 1d arrays. > (See the discussion for the distinction.)
Could you explain to me how you'd like this to be fixed? If the matrix becomes a container of 1-d arrays, then you can no longer expect x[:,0] to return a column vector -- which was one of the reasons the matrix class was created. While not entirely consistent, one workaround would be to detect when a matrix is a "vector", and then do 1-d-like indexing on it. > You "expect" this matrix behavior only from experience with it, > which is why I "expect" it too, while hating it. No, really, I don't ever use the matrix class :) But it is not like the behaviour is set in stone, so I would spend less time hating and more time patching. > The example really speaks for itself. Since Konrad is an extremely > experienced user/developer, his reaction should speak volumes. Of course, I meant no disrespect to Konrad. I'm just trying to understand the best way to address your concern. Regards Stefan _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion