[Numpy-discussion] Possible new multiplication operators for Python
Eike Welk
eike.welk at gmx.net
Wed Aug 20 10:31:36 EDT 2008
On Tuesday 19 August 2008, Alan G Isaac wrote:
>
> Proposal 1: PEP 225, but *just* for multiplication.
> Either ~* as in the PEP or @* (which I prefer).
> (This looks simplest.)
>
> Proposal 2: PEP 225
> (but maybe using @ instead of ~).
>
> Proposal 3: use of a unicode character,
> perhaps × since it is in the Latin1
> extension of ASCII.
>
> Proposal 4: user defined operators, perhaps
> as described in PEP 225.
> In this case, @dot would be a natural.
> (This looks most complex but also most powerful.)
> But is A @dot B really better than say A.dot(B)?
> Maybe.
>
> Propsal 5: use the existing language, either
> using __call__ as in Tim's proposal or adding
> a ``dot`` method.
>
> Did I miss any?
You could abuse Python's current capabilities to create something that
looks like proposal 4:
C = A *dot* B
You would need a helper object named "dot". This has been proposed on
the Python-Dev list. I find this kinds of pseudo operator a bit
clunky. It might be quite confusing to beginners because really the
the "*" operator is invoked twice.
The pseudo operator has one nice aspect: It can take additional
arguments, which could be nice for the array-of-matrices application.
mmul = dot((1,0),(0,1))
C = A *mmul* B
--
I'd like PEP 225 to be implemented. The new operators are kind of
elegant, and they don't introduce any new concepts. They just
introduce a bunch of new special functions.
Regards,
Eike.
More information about the NumPy-Discussion
mailing list