# SciPy

SciPy
File:Scipylogo.png
File:NumPyOptimizationSmall.png
An example plotting Bessel functions and finding their local maxima.
Developer(s) community project sponsored and supported by Enthought
Stable release 0.7.1 / 2009-07-11-10-24; 356242482 ago
Operating system Cross-platform (list)
Type Technical computing
Website www.scipy.org

SciPy is an open source library of algorithms and mathematical tools for the Python programming language.

SciPy contains modules for optimization, linear algebra, integration, interpolation special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and engineering. It has a similar audience to applications as MATLAB, GNU Octave, and Scilab.

## Data structures

The basic data structure in SciPy is a multidimensional array provided by the NumPy module. Older versions of SciPy used Numeric as an array type, which is now deprecated in favor of the newer NumPy array code. [1]

## Modules

### Overview

Available subpackages:

• constants: physical constants and conversion factors (since version 0.7.0[1])
• cluster: hierarchical clustering, vector quantization, K-means
• fftpack: Discrete Fourier Transform algorithms
• integrate: numerical integration routines
• interpolate: interpolation tools
• io: data input and output
• lib: Python wrappers to external libraries
• linalg: linear algebra routines
• misc: miscellaneous utilities (e.g. image reading/writing)
• optimize: optimization algorithms including linear programming
• signal: signal processing tools
• sparse: sparse matrix and related algorithms
• spatial: KD-trees, nearest neighbors, distance functions
• special: special functions
• stats: statistical functions
• weave: tool for writing C/C++ code as Python multiline strings

SciPy's core feature set is extended by many other dedicated software tools.[2] For example,

• Plotting. The currently recommended 2-D plotting package is Matplotlib, however, there are many other plotting packages such as HippoDraw, Chaco, and Biggles. Other popular graphics tools include Python Imaging Library and MayaVi (for 3D visualization).
• Optimization. While SciPy has its own optimization package, OpenOpt has access to more optimization solvers and can involve Automatic differentiation.
• Advanced Data Analysis. Via RPy, SciPy can interface to the R statistical package for advanced data analysis.
• Database. SciPy can interface with [3] PyTables, a hierarchical database package designed to efficiently manage large amounts of data using HDF5.
• Interactive shell. IPython is an interactive environment that offers debugging and coding features similar to what MATLAB offers.
• Symbolic Mathematics. There are several Python libraries--such as PyDSTool Symbolic and SymPy--that offer symbolic mathematics.

fr:SciPy