[Numpy-discussion] New Operators in Python

Charles R Harris charlesr.harris@gmail....
Sat Mar 24 15:48:17 CDT 2007


On 3/24/07, Travis Oliphant <oliphant@ee.byu.edu> wrote:
>
> Every so often the idea of new operators comes up because of the need to
> do both "matrix-multiplication" and element-by-element multiplication.
>
> I think this is one area where the current Python approach is not as
> nice because we have a limited set of operators to work with.
>
> One thing I wonder is if we are being vocal enough with the Python 3000
> crowd to try and get additional operators into the language itself.
>
> What if we could get a few new operators into the language to help us.
> If we don't ask for it, it certainly won't happen.
> My experience is that the difficulty of using the '*' operator for both
> matrix multiplication and element-by-element multiplication depending on
> the class of the object is not especially robust.  It makes it harder to
> write generic code, and we still haven't gotten everything completely
> right.
>
> It is somewhat workable as it stands, but I think it would be nicer if
> we could have some "meta" operator that allowed an alternative
> definition of major operators.   Something like @*  for example (just
> picking a character that is already used for decorators).


Yes indeed, this is an old complaint. Just having an infix operator would be
an improvement:

A dot B dot C

Not that I am suggesting dot in this regard ;) In particular, it wouldn't
parse without spaces. What about division? Matlab has both / and \ for left
and right matrix division and something like that could call solve instead
of inverse, leading to some efficiencies. We also have both dot and
tensordot, which raises the problem of interpretation when ndim > 2.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20070324/69016755/attachment.html 


More information about the Numpy-discussion mailing list