[Numpy-discussion] mixing arrays and matrices: squeeze yes, flattened no?

Sven Schreiber svetosch at gmx.net
Tue Feb 21 15:49:02 EST 2006


Travis Oliphant schrieb:
> Sven Schreiber wrote:

> 
>> Next, I try to workaround by b.squeeze(). That seems to work, but why is
>> b.squeeze().shape == (1, 112) instead of (112,)?
>>  
>>
> Again the same reason as before.  A matrix is returned from b.squeeze()
> and there are no 1-d matrices.   Thus, you get a row-vector.   Use .T if
> you want a column vector.

Well if squeeze can't really squeeze matrix-vectors (doing a de-facto
transpose instead), wouldn't it make more sense to disable the squeeze
method for matrices altogether?

> 
>> Then I thought maybe b.flattened() does the job, but then I get an error
>> (matrix has no attr flattened). Again, I'm baffled.
>>  
>>
> The correct spelling is b.flatten()

Ok, but I copied .flattened() from p. 48 of your book, must be a typo then.


> You can mix arrays and matrices just fine if you remember that 1d arrays
> are equivalent to row-vectors.
> -Travis
> 
Ok, thanks.

Btw, did the recent numpy release change anything in terms of preserving
matrix types when passing to decompositions etc? I checked the release
notes but maybe they're just not verbose enough.
-Sven






More information about the NumPy-Discussion mailing list