SciPy Website

Site Navigation

Table Of Contents

Next topic

Obtaining NumPy & SciPy

Scientific Computing Tools For Python

SciPy refers to three related but distinct entities:

  • A software library, a collection of scientific toolboxes based on NumPy;
  • A community surrounding an open source software tool stack, including but not limited to NumPy and SciPy;
  • An annual conference dedicated to scientific computing with Python.

The SciPy Library

The SciPy library depends on NumPy, which provides convenient and fast N-dimensional array manipulation. The SciPy library is built to work with NumPy arrays, and provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization. Together, they run on all popular operating systems, are quick to install, and are free of charge. NumPy and SciPy are easy to use, but powerful enough to be depended upon by some of the world’s leading scientists and engineers.

The Tool Stack for Scientific Computing With Python

Core Tools

  • Python, the core language (currently, most tools depend on Python 2.x)
  • NumPy, the fundamental package
  • SciPy, A collection of numerical algorithms and domain-specific toolboxes
  • For interactive scientific computing, the most popular solution is IPython - a heavily enhanced version of the Python interactive interpreter designed with scientific and parallel computing in mind.

The following packages are often used in conjunction with the core tools to form a powerful scientific toolstack:

2D Visualization

  • Matplotlib is a very mature and popular plotting package, that provides publication-quality 2D plotting as well as rudimentary 3D plotting.
  • Chaco is another Python plotting toolkit designed from the ground up to be great for embedded, interactive plotting. It is built on Traits, both are part of the Enthought Tool Suite.

3D Visualization

  • Mayavi is a powerful and user-friendly framework for 3D visualization, built on top of the award winning Visualization Toolkit, VTK. It features an (optional) rich user interface with dialogs to interact with all data and objects in the visualization, a simple and clean scripting interface in Python (including one-liners) and an object-oriented programming interface. Mayavi integrates seamlessly with NumPy and SciPy, and is part of the Enthought Tool Suite. It includes the TVTK library, a Traits-enabled Pythonic API for VTK, used to create custom Mayavi modules.