[Python-Dev] PEP 465: A dedicated infix operator for matrix multiplication

Sturla Molden sturla.molden at gmail.com
Tue Apr 8 12:23:03 CEST 2014


Björn Lindqvist <bjourne at gmail.com> wrote:

> import numpy as np
> from numpy.linalg import inv, solve
> 
> # Using dot function:
> S = np.dot((np.dot(H, beta) - r).T,
>            np.dot(inv(np.dot(np.dot(H, V), H.T)), np.dot(H, beta) - r))
> 
> # Using dot method:
> S = (H.dot(beta) - r).T.dot(inv(H.dot(V).dot(H.T))).dot(H.dot(beta) - r)
> 
> Don't keep your reader hanging! Tell us what the magical variables H,
> beta, r and V are. And why import solve when you aren't using it?
> Curious readers that aren't very good at matrix math, like me, should
> still be able to follow your logic. Even if it is just random data,
> it's better than nothing!

Perhaps. But you don't need to know matrix multiplication to see that those
expressions are not readable. And by extension, you can still imagine that
bugs can easily hide in unreadable code.  

Matrix multiplications are used extensively in anything from engineering to
statistics to computer graphics (2D and 3D). This operator will be a good
thing for a lot of us.

Sturla



More information about the Python-Dev mailing list