I find myself substituting Python (+Numpy+SciPy+SymPy) for applications, where I would have whipped out some quick Matlab/Octave code in the past. By no means do I consider myself a skilled python programmer, but almost everything I used to do in Octave/Matlab, I can do in python; and very often I can do it better.
As an analogy, Matlab is like an applicant who has a very high score on the quantitative section of the SAT; while Python is like an applicant who is nearly as good on quant, but also has excellent verbal, and writing skills.
Here are a set of articles that echo a similar sentiment:
1. Why use Python for Scientific Computing (Cyrille Rossant)
As an analogy, Matlab is like an applicant who has a very high score on the quantitative section of the SAT; while Python is like an applicant who is nearly as good on quant, but also has excellent verbal, and writing skills.
Here are a set of articles that echo a similar sentiment:
1. Why use Python for Scientific Computing (Cyrille Rossant)
- free and open-source
- better and complete language
- rich library set
- plays nice with other languages and OS
2. Keep Calm and Code in Python (Lorena Barba)
- great teaching language
- very easy to get useful work done
- good string manipulation
- demand for python programmers
There are a lot of other links to python evangelists in the links above.
Personally, what I really like about python is:
- the arbitrary constraint of requiring files and global functions to be "atomic"
- I find visualization using matplotlib (with seaborn or ggplot) to be better and more configurable
- same with 3D visualization using MayaVi2 for instance or arbitrary graphics
- I just love jupyter notebooks. They help me keep code with documentation (which might include LaTeX markup). It has become my default mode of preparing new lectures.
- python clearly has momentum
What are possible downsides of moving from Matlab to Python?
- if you've used Matlab for a long time, you have to unlearn a few things
- installation, while much simpler these days, can be intimidating for some
- the python world currently is stuck between v2.x and v3.x
- for a subset of tasks (especially linear algebra) I find Matlab more intuitive. For instance, 1d arrays are either column or row vectors; in numpy the distinction is fuzzy.
- operator overloading: multiply matrix and vector in Matlab is just A*x; in python you have to say numpy.dot(A,x)
No comments:
Post a Comment