[SciPy-dev] matrix and ravel()

Robert Kern rkern at ucsd.edu
Tue Oct 11 23:11:58 EDT 2005


Travis Oliphant wrote:
> Robert Kern wrote:
> 
>>In [1]: A = array([[1,2],[3,4]])
>>
>>In [2]: B = mat(A)
>>
>>In [3]: ravel(A)
>>Out[3]: array([1, 2, 3, 4])
>>
>>In [4]: ravel(B)
>>Out[4]: matrix([[1, 2, 3, 4]])
>>
>>This appears to be a side effect of the new __array_finalize__ magic.
>>I'm not sure that it's desirable. I'm also not sure that it's desirable
>>to change it.
> 
> Not really a side-effect.  An intended feature.   Matrices are supposed 
> to be matrices (i.e. 2-d arrays).  They cannot be 1-d arrays no matter 
> how hard you try....  If you want to ravel a matrix and get a 1-d array 
> out,  you are not using matrices right....  Use a 1-d array (i.e. the .A 
> attribute).

It's kind of an Immovable Object meets Irresistable Force deal. I expect
ravel() to always give me a 1-d array, and I also expect matrix object
to always by 2-d. I'm willing to concede the fact that all of my desires
are mutually contradictory in this regard.

-- 
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die."
  -- Richard Harter




More information about the SciPy-Dev mailing list