[Numpy-discussion] .T Transpose shortcut for arrays again

Tim Hochberg tim.hochberg at cox.net
Thu Jul 6 12:51:14 CDT 2006


Sven Schreiber wrote:
> Tim Hochberg schrieb:
>
>   
>>>> -) .I for inverse; actually, why not add that to arrays as well as
>>>> "syntactic sugar"?
>>>>   
>>>>     
>>>>         
>>> Because it encourages people to do the wrong thing numerically speaking? 
>>> My understanding is that one almost never wants to compute the inverse 
>>> directly, at least not if you're subsequently going to multiply it with 
>>> something, instead you want to use linalg.solve or some other similar 
>>> approach.
>>>   
>>>       
>> Also, having an attribute access do an expensive operation behind the 
>> scenes seems antisocial.
>>     
>
> Ok, you (and Bill) may have a point there. (Although I'm not sure it's
> the best way to educate naive users like me about numerical efficiency
> by making inverse harder to access. Otherwise you should rename
> linalg.inv --way too easy!-- to
> linalg.okay_im_going_to_compute_the_inverse_for_you_but_its_probably_a_stupid_thing_to_do()
>  ;-)
>
> However, then why is it possible for matrices?? It's just seems
> incoherent to me.
>   
Because matrix users asked for it I imagine. Since I don't use the 
matrix, I certainly wouldn't have objected.  Also, the matrix class is 
supposed to look a lot like matlab and I assume matlab has some trivial 
way to produce an inverse -- even if it is a bad idea.

> Maybe you guys as the developers of numpy should really make up your
> mind about the future of matrices in numpy. Either it's supported, then
> eventually I would expect matrix versions of ones, zeros, eye, for
> example. (Although eye().M would come close enough I guess.) Or you
> decide that you don't really like all the problems that it implies and
> officially declare it unsupported.
> That would be valuable information for users like me who have had (and
> still sometimes have) a hard time figuring out whether I should be using
> arrays or matrices.
>   

Well, the matrix class could use a champion I think. Preferably someone 
who does a lot of matrix work and is capable of doing some development 
on it, at least on the python end. Without that I imagine it will stay 
kind of incoherent.

>
>   
>>>   
>>>       
>>>> -) * being the matrix product instead of element-wise; Now, I could live
>>>> with using dot and I don't want to push anything, but maybe this is the
>>>> right time to consider another operator symbol as a shortcut for the dot
>>>> function to be used with arrays? (Unfortunately right now I can't think
>>>> of any sensible character(s) for that...)
>>>>
>>>>         
>> 2. Backwards compatibility.
>>     
>
> I meant a *new* operator symbol.
>   
Oh. Well, we're kind of short on those at the moment. The only thing I 
know of that would work is to abuse the call operator, thus
    dot(A, B)  <=> (A)(B)
That's kind of weird though and it's never gotten much support.

>   
>> Curmudgeonly yours,
>>     
A curmudgeon is an old, cranky, stubborn fixed in his ways kind of person.

>>     
> Well I don't know what that means, so here's my hopefully equally
> incomprehensible reaction:
> Mit freundlichen Grüßen,
>   
With great (big? much?) friendship (friendliness?)?

-tim


> Sven
>
>
>   






More information about the Numpy-discussion mailing list