[SciPy-dev] is this a bug (take with indices in a matrix)

Charles R Harris charlesr.harris at gmail.com
Thu Nov 26 19:54:11 EST 2009


On Thu, Nov 26, 2009 at 5:40 PM, Thouis (Ray) Jones <thouis at broad.mit.edu>wrote:

> >>> from numpy import *
> >>> q = matrix(arange(9).reshape((3,3)))
> >>> take(q, matrix([[0]]), axis=0)
> matrix([[0, 1, 2]])
> >>> take(q, matrix([[0]]), axis=1)
> matrix([[0, 3, 6]])
>
> Expected behavior for the last expression:
> >>> take(q, [0], axis=1)
> matrix([[0],
>        [3],
>        [6]])
> ____


Bug or feature could be the subject of much discussion, but it is definitely
a wart. What looks to be happening is a two step thing. First the column is
taken ndarray wise, resulting in a 1d array, which is then converted using
the default 1d -> row for matrix conversions.

I think it could be fixed, but the whole problem with the current matrix
class is that fixing all these warts starts to intrude on the base ndarray
class.

You should raise the issue on the numpy mailing list, it's time for another
discussion of the matrix class.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20091126/41afc029/attachment.html>


More information about the SciPy-Dev mailing list