I think it is! In our department (Electrical and Electronic Engineering), we use a variety of tools and languages, including Matlab, but python is increasingly popular, particularly when combined with Jupyter notebooks. It is also being used for teaching now as well. Perhaps other fields have a slower take-up, but as the tools mature, I would expect this transition to continue.
I think it is! In our department (Electrical and Electronic Engineering), we use a variety of tools and languages, including Matlab, but python is increasingly popular, particularly when combined with Jupyter notebooks. It is also being used for teaching now as well. Perhaps other fields have a slower take-up, but as the tools mature, I would expect this transition to continue.
I agree with Tom, I also think it is getting a better and better reputation.
There was a time when the numpy/scipy packages were less mature (pre-2005), and Matlab was easier to work with. In the last ten years, the Python ecosystem has matured a lot, and n my opinion it beats Matlab in almost every aspect.
I think those who are used to Matlab still don't feel they have a compelling reason to change. Usually, someone else pays the license (expensive!), it works fine to solve their problems, their legacy code is Matlab code, and it takes time to learn something new. In other words: Matlab's position is mainly due to inertia, in my opinion.
But people starting out today are much more likely to learn Python than they were for 10-15 years ago. Maybe even more likely to learn Python than to learn Matlab, actually...
Python has a vast array of scientific libraries that make it an excellent tool that compares favourably with commercial software most notably MATLAB.
You have Scipy and Numpy for your standard matrix manipulation, signal/image processing and optimisation. Also you have more specialized libraries that basically can substitute MATLAB toolboxes like the optimization toolbox (that you pay extra). For example you can use DEAP or Pyevolve to do evolutionary based optimization. Machine learning is another area that Python offers libraries like sklearn and PyBrain. Multiprocessing is something that it also readily available through the multiprocessing module, without the need to buy a ‘multiprocessing’ toolbox.
Finally it’s easy to switch from MATLAB since Python it’s a scripting language. It’s also easy to get started by downloading a scientific distribution that bundles all the basic scientific libraries, like anaconda or pythonxy.
I think the strongest advantage that Python has over Matlab is its dedicated package manager (pip or easy_install).
The Matlab file exchange is feels painfully old in comparison, in particular because to update packages will generally requires manual intervention by the user.
Python, on the other hand, can detect old packages, update all in one command and this will happen if the packages came from PyPi, or Github or elsewhere. More impressively, the package manager will do dependency checking and install all necessary dependencies when installing new packages.
The previous colleagues have provided excellent points but I would like to add a few more. Python, although a scriptable language, actually has most of the characteristics of the typically "compiled" languages. All of this means that you can actually do software from beginning to end with just Python. You have GUI libraries (notably WxPython and PyQt), 2D plotting (matplotlib, chaco, etc.), 3D (VTK, Mayavi, Vispy, pyOpenGL), numerical, database and machine learning (Pandas, numpy/scipy, Scikit-Learn), among others. Recently it has also gained strength in web development. I've released several scientific software using Python. A possible example is this: