Why physics students and physicists need python?

Posted on 2014-10-13 in Science

Nowadays, the Python language has become a widely used tool for scientists and engineers, which is fully stacked with powerful support packages, such as numpy and scipy. However, I came across Python due to the need of an easy-to-use web framework until last summer. After several days of trails, I found Python was such an elegent and easy-to-learn language. So I immediately got out of PHP and turned to Python for the purpose of Web programming. When I realized its capability for scientific computing three months ago, I decided to dig deeper into it.

Why python for physics? In other words, why Python language is suitable for physics students or physicists?

  • Computer skills are called.

Regardless of the specific displine in physics, or other sciences, the processing of dataset and visualization are in our workflow. In the last decade, all the experimental datasets are almost acquired by computers. We must handle different kinds of data format supplied by our devices, such as fitting, filtering, plotting. Previously, We can do this by MS Excel, Origin, Matlab or others. But now, Python is at hand.

  • Python is easy to learn.

This is important since physicists are not professional programmers. They are just problem solvers in real world. Non-physics skills should not be much too time-consuming. The gentle learning curve of the technique tool is preferred. Luckily, Python is clean, elegent and easily readable. What's more, Python is a interpreted language, which means the programs can be run without any changes between different operating systems.

  • Python is extended by abundant libraries.

Like many other modern language, Python is extendable. The most important thing is Python has a huge and active community for scientific computation. You can almost find any fundamental applications just via the speicific module or liabrary. Numpy and Scipy are ready for numercal work, which are very fast and offer many predefined functions. They have built-in linear algebra, sparse matrices, Fourier tansform, optimization and other things. Matplotlib and visual (or other libraris) can make 2D/3D graphics for you. Some other famous libraries are also on the list, such as Sympy, pandas, scikit-learn...

  • Binding with your browser.

You will realize that Python is cool when you invoke Ipython Notebook in your favorite browsers, such as Chrome and Firefox. The binding between Python and JS (or other Web techniques) tells that the day of computing in browsers is coming. IPython Notebook promises you can easily share the data with your colleagues. The interactive widgets from IPython Notebook version 2.0 and later makes the interacting with the data via figures real-time.

  • The last but not the least, Python can integrate with C/C++ and Fortran codes.

Once you want to perform computation, simulation, data processing or visualsization work, you should give Python a try!