[Numpy-discussion] How do I make a diagonal matrix?

Travis Oliphant oliphant at ee.byu.edu
Fri Jun 23 15:19:36 EDT 2006


Alan G Isaac wrote:

>>Alan G Isaac wrote: 
>>    
>>
>>>Hmm. One would think that diag() would accept a flatiter 
>>>object, but it does not.  Shouldn't it?? 
>>>      
>>>
>
>
>On Fri, 23 Jun 2006, Travis Oliphant apparently wrote: 
>  
>
>>It doesn't? 
>>try: 
>>a = rand(3,4) 
>>diag(a.flat).shape 
>>    
>>
>
>OK, but then try:
>  
>
>>>>a=N.mat(a)
>>>>N.diag(a.flat).shape
>>>>        
>>>>
>(1,)
>
>Why is a.flat not the same as a.A.flat?
>  
>

It is the same object except for the pointer to the underlying array.  
When asarray(a.flat) get's called it looks to the underlying array to 
get the sub-class and constructs that sub-class (and matrices can never 
be 1-d).  Thus, it's a "feature"


-Travis





More information about the NumPy-Discussion mailing list