# NumPy, Matplotlib, SciPy

NumPy, Matplotlib, and SciPy are packages that are fundamental to many applications of Python, particularly in numerically-oriented programming. They are not part of the set of base Python packages, but are included in distributions such as Anaconda and can be easily added to other Python installations.

The NumPy package adds many features important or useful to scientific and numeric computing. These include

- True multidimensional arrays
- Linear algebra functions
- Fast Fourer Transform (FFT) Functions
- Random number generators
- Tools for integrating Fortran, C, and C++ libraries.

Matplotlib is a Python package that can be used to produce high-quality plots similar to those of MATLAB^{TM}. Its homepage and documentation can be found at
matplotlib.org. A full complement of plot types is available, including

- line plots
- scatter plots
- histograms
- bar charts
- pie charts
- contour plots

NumPy and SciPy (*Sci*entific *Py*thon) are closely linked and frequently are used together. Both provide a large selection of built-in functions.

SciPy builds on NumPy to provide a set of modules and packages that add functions for data analysis and numerical computations. These include

- special functions
- optimizations
- linear algebra
- quadrature (numerical integration)
- interpolation
- signal processing
- basic statistics