Hi,

On Tue, Feb 11, 2014 at 4:16 AM, Jacco Hoekstra - LR
<j.m.hoeks...@tudelft.nl> wrote:
> For our students, the matrix class is really appealing as we use a lot of 
> linear algebra and expressions with matrices simply look better with an 
> operator instead of a function:
>
>         x=A.I*b
>
> looks much better than
>
>         x = np.dot(np.linalg.inv(A),b)

Yes, but:

1)  as Alan has mentioned, the dot method helps a lot.

import numpy.linalg as npl

x = npl.inv(A).dot(b)

2) Overloading the * operator means that you've lost * to do
element-wise operations.  MATLAB has a different operator for that,
'.*' - and it's very easy to forget the dot.  numpy makes this more
explicit - you read 'dot' as 'dot'.

> And this gets worse when the expression is longer:
>
>         x = R.I*A*R*b
>
> becomes:
>
>         x = np.dot( np.linalg.inv(R), np.dot(A, np.dot(R, b)))

x = npl.inv(R).dot(A.dot(R.dot(b))

> Actually, not being involved in earlier discussions on this topic, I was a 
> bit surprised by this and do not see the problem of having the matrix class 
> as nobody is obliged to use it. I tried to find the reasons, but did not find 
> it in the thread mentioned. Maybe someone could summarize the main problem 
> with keeping this class for newbies on this list like me?
>
> Anyway, I would say that there is a clear use for the matrix class: 
> readability of linear algebra code and hence a lower chance of errors, so 
> higher productivity.

Yes, but it looks like there are not any developers on this list who
write substantial code with the np.matrix class, so, if there is a
gain in productivity, it is short-lived, soon to be replaced by a
cost.

Cheers,

Matthew
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to