[SciPy-user] Pros and Cons of Python verses other array environments
david at ar.media.kyoto-u.ac.jp
Fri Sep 29 02:58:48 CDT 2006
Bill Baxter wrote:
> The numpy for matlab users page
> ( http://www.scipy.org/NumPy_for_Matlab_Users )
> also list a number of pros and cons.
> So far, I find the biggest cons to numpy to be
> 1) integration of plotting is not as good as matlab. You have to be
> careful about calling "show()" in matplotlib because of event-loop
> integration issues. Also no good 3D plotting solution. MayaVi is
> supposed to be good, but it would be better if it were all just built
> into matplotlib.
> 2) integration of debugging is not as good as matlab. In matlab when
> you stop at a breakpoint in your code, you get an interactive console
> where you can probe current values in your program, or create new ones
> etc. The Wing IDE has this, but I couldn't find any open source IDEs
> that did this.
Concerning point 1, matplotlib is better than matlab for some things,
but much worse for other (it can also be that I am just clueless). For
example, interactive plot is not great with matplotlib (zoom and so),
and much slower for redrawing (but I think this is a consequence of the
flexibility of matplotlib).
As Someone said it before, matlab makes it easier for beginners; but
once you hit the wall, you hit it very hard :) I am using scipy for a
few months now, after several years of matlab which I consider myself at
least moderately knowledgeable about, and there is no coming back for
me. After 2 weeks, I was more or less as efficient in numpy as I was in
The things I consider much better in matlab are:
- interactive plots
- profiling -> this is the thing I am missing the most. If one of my
module is slow, I find it really hard to find where the problems are
compared to matlab.
- size of community: in machine learning and signal processing, matlab
is kind of pervasive. In machine learning, particularly, you have tons
of software available on the internet for free.
Something nobody has mentioned before for pros for numpy is integration
with C code: this is really clumsy in matlab, and it works great with
python (ctypes, swig, boost, pyrex are all great tools for that,
depending on what you want to do).
More information about the SciPy-user