SciPy and NumPy

SciPy is a collection of open source code libraries for math, science and engineering. NumPy, Matplotlib and pandas are libraries that fall under the SciPy project umbrella.

NumPy (source code) is a Python code library that adds scientific computing capabilities such as N-dimensional array objects, FORTRAN and C++ code integration, linear algebra and Fourier transformations. NumPy serves as a required dependency for many other scientific computing packages such as pandas.

Blaze is a similar, but separate, ecosystem with additional tools for wrangling, cleaning, processing and analyzing data.

SciPy resources

Take a look at the pages on Matplotlib and pandas for tutorials specific to those projects. The following resources are broader walkthroughs for the SciPy ecosystem:

  • SciPy Lecture notes goes into the overall Python scientific computing ecosystem and how to use it.

  • The SciPy Cookbook contains instructions for various SciPy packages that were previously hosted on the SciPy wiki.

  • Robots and Generative Art and Python, oh my! uses Scipy, Numpy, and Matplotlib to generate some nice looking art that can even be written to paper using a plotter. This is a very cool example project that ties together the scientific world and the art world.

  • Lectures in Quantitative Economics: SciPy provides a good overview of SciPy compared to the specific NumPy project, as well as explanations for the wrappers SciPy provides over lower-level FORTRAN libraries.

  • A plea for stability in the SciPy ecosystem presents concerns from one scientist's perspective about how fast the Python programming ecosystem changes and that code can become backwards incompatible in only a few years. The issue is that many science projects last decades and therefore cannot follow the rate of change as easily as typical software development projects.

NumPy resources

Example NumPy code

What else would you like to learn about Python and data?