Scientific Computing and Data Visualization using Python
Prabhu Ramachandran
Department of Aerospace Engineering
IIT Bombay
Scientific research, especially in computationally intensive areas, typically requires a good grasp of the domain (science/engineering) and a solid computer programming background. Given this context, we illustrate why it is important for scientists and engineers to learn a powerful, open source, general purpose, scripting language and how Python fits this role very well. We provide a quick overview of several of the open source scientific computing libraries available today. This includes, NumPy, SciPy, 2D plotting (matplotlib and Chaco), code wrapping tools (SWIG, f2py), application building (GUIs and application frameworks) and 3D data visualization. We highlight why these tools are important and how they form a very compelling alternative to commercial tools.
NumPy forms the basis for most of the existing scientific computing tools by providing a strong array library along with the basic tools for most scientific computing. SciPy adds to this with several important algorithms. Matplotlib and Chaco allow users to make publication quality plots of their data. Wrapping tools like SWIG, f2py and others enable users to call their own C/C++/Fortran libraries from Python. The Enthought Tool Suite (ETS) provides a powerful set of libraries for users to build scientific applications with attractive and easy to create UIs and an application framework. Finally, VTK/TVTK and MayaVi2 allow scientists to perform compelling 3D data visualization.
