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.

SciPy project logo.

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.

NumPy logo.

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.

  • 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?

Tell me about standard relational databases.

What're these NoSQL data stores hipster developers keep talking about?

Why is Python a good programming language to use?


Matt Makai 2012-2022