<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 10, 2014 at 1:23 PM, Alan G Isaac <span dir="ltr"><<a href="mailto:alan.isaac@gmail.com" target="_blank">alan.isaac@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 2/10/2014 3:04 PM, Matthew Brett wrote:<br>
> I teach psychologists and neuroscientists mainly<br>
<br>
<br>
</div>I must suspect that notebook was not for<br>
**undergraduate** psychology students.<br>
At least, not the ones I usually meet.<br>
<br>
SymPy is great but for those without background<br>
it is at best awkward.  It certainly does not<br>
offer an equivalent to the notational convenience<br>
of numpy's matrix object.<br>
<br>
<br>
As far as I have been able to discern, the underlying<br>
motivation for eliminating the matrix class is that<br>
some developers want to stop supporting in any form<br>
the subclassing of numpy arrays.  Do I have that right?<br>
<br>
So the real question is not about numpy's matrix class,<br>
but about whether subclassing will be supported.<br>
(If I'm correctly reading the tea leaves.)<br>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>I don't see any reason to remove the Matrix object. It has its limitations, I don't use it myself, but it costs little and I don't see the value of forcing users to change.<br>
<br></div><div>As to subclassing ndarray, it is not recommended because it seldom saves much work (see masked arrays), and can have side effects that are difficult to deal with. The result of the latter is that numpy itself is called upon to support array method overrides, of sum and mean for example. That makes for a mess. That said, there is no movement to forbid subclassing ndarray, but there will probably be more resistance to accommodating and fixing problems arising from that design choice. At least that is my own feeling.<br>
<br></div><div>Chuck <br></div></div></div></div>