Numpy is a commonly-used library providing multi-dimensional arrays, and a wide range of functions to perform efficient operations across these. While it is normally orders of magnitude faster than using pure Python code, in more complex situations it’s not always obvious how to gain maximal performance.

## Prerequisites

This lesson assumes that you are familiar with the Python programming language, and with some of the basics of using Numpy. If that is not the case, then you may wish to work through the Software Carpentry introduction to Python