>> On 3/26/07, Alan G Isaac <[EMAIL PROTECTED]> wrote: >>> finds itself in basic conflict with the idea that >>> I ought to be able to iterate over the objects in an >>> iterable container. I mean really, does this not "feel" >>> wrong? :: >>> for item in x: print item.__repr__() >>> ... >>> matrix([[1, 2]]) >>> matrix([[3, 4]])
On Mon, 26 Mar 2007, Bill Baxter apparently wrote: > So you're saying this is what you'd find more pythonic? >>>> X[1] > matrix([2,3]) >>>> X[:,1] > matrix([[3, > 4]]) > Just trying to make it clear what you're proposing. No; that is not possible, since a matrix is inherently 2d. I just want to get the constituent arrays when I iterate over the matrix object or use regular Python indexing, but a matrix when I use matrix/array indexing. That is :: >>> X[1] array([2,3]) >>> X[1,:] matrix([[3, 4]]) That behavior seems completely natural and unsurprising. > Probably about half the bugs I get from mixing and matching matrix and > array are things like > row = A[i] > ... > z = row[2] > Which works for an array but not for a matrix. Exactly! That is the evidence of a "bad surprise" in the current behavior. Iterating over a Python iterable should provide access to the contained objects. Cheers, Alan Isaac _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion