[SciPy-user] Why is SciPy better than Matlab or IDL? ;)

Robin robince at gmail.com
Tue Jul 7 12:55:48 EDT 2009


On Tue, Jul 7, 2009 at 3:03 PM, Vincent van
Beveren<V.vanBeveren at rijnhuizen.nl> wrote:
> -          In what aspects does SciPy excel, compared to say IDL or matlab?
>
> -          In what ways allows it a scientist to be more effective?
>
> -          How usable is SciPy for Plasma physics, molucular dynamics and
> nanolayer Surface and Interface Physics (the 3 main areas at Rijnhuizen)?
>
> -          How stable is it compared to other packages. (bugs, computation)?

I think it's probably been covered by others but some of the key
things for me are:

- how easy it is to extend performance critical portions in C or
FORTRAN (cython, ctypes, f2py, weave etc.)
http://www.scipy.org/PerformancePython may be slightly out of date but
I think it's a great illustration.

- how easy it is (relatively speaking) to employ parralel processing.
http://www.scipy.org/ParallelProgramming . Using the multiprocessing
module (available as a backport for 2.5) it is literally 2 lines to
have a for loop parallellised over 8 cores (or 16 if I had them). In
MATLAB anything more than 4 cores gets into really silly money (not
usually included in site license). This is probably the major factor
driving interest in Python from colleagues in my lab. Also of course
there are parralel python, ipython etc. and python bindings to MPI,
cuda, opencl etc. which I think would usually allow much quicker
progress than working in C.

- just how nice it is to use; broadcasting... even just how nice it is
to handle default arguments in functions and update code with new
parameters in a backwards compatible was was a  bit of a revelation
for me after matlab.

- slices as views - in my work I usually have one long data set which
I slice and view in different ways. In matlab I think slices make
copies (at least they used to - possibly its changed now, but another
thing is that you can never really know what matlabs going to do,
whereas in Python you really can control how memory is laid out and
manipulated at a low level) but in Python all my different views point
to the same data.

cheers

Robin



More information about the SciPy-User mailing list