SciPy
Encyclopedia
SciPy is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 library of algorithms and mathematical tools for the Python programming language
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

.

SciPy contains modules for optimization
Optimization (mathematics)
In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....

, linear algebra
Linear algebra
Linear algebra is a branch of mathematics that studies vector spaces, also called linear spaces, along with linear functions that input one vector and output another. Such functions are called linear maps and can be represented by matrices if a basis is given. Thus matrix theory is often...

, integration
Integral
Integration is an important concept in mathematics and, together with its inverse, differentiation, is one of the two main operations in calculus...

, interpolation
Interpolation
In the mathematical field of numerical analysis, interpolation is a method of constructing new data points within the range of a discrete set of known data points....

, special functions
Special functions
Special functions are particular mathematical functions which have more or less established names and notations due to their importance in mathematical analysis, functional analysis, physics, or other applications....

, FFT
Fast Fourier transform
A fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform and its inverse. "The FFT has been called the most important numerical algorithm of our lifetime ." There are many distinct FFT algorithms involving a wide range of mathematics, from simple...

, signal
Signal processing
Signal processing is an area of systems engineering, electrical engineering and applied mathematics that deals with operations on or analysis of signals, in either discrete or continuous time...

 and image processing
Image processing
In electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...

, ODE
Ordinary differential equation
In mathematics, an ordinary differential equation is a relation that contains functions of only one independent variable, and one or more of their derivatives with respect to that variable....

 solvers and other tasks common in science and engineering. It has a similar audience to applications such as MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

, GNU Octave
GNU Octave
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command-line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB...

, and Scilab
Scilab
Scilab is an open source, cross-platform numerical computational package and a high-level, numerically oriented programming language. Itcan be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling and simulation of...

.

SciPy is currently distributed under the BSD license and its development is sponsored by Enthought
Enthought
Enthought, Inc. is a software company based in Austin, Texas, USA that develops scientific computing tools using primarily the Python programming language...

.

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. http://numpy.scipy.org/

Overview

Available subpackages:
  • constants: physical constants and conversion factors (since version 0.7.0)
  • 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

Additional functionality

SciPy's core feature set is extended by many other dedicated software tools. For example,
  • Plotting. The currently recommended 2-D plotting package is Matplotlib
    Matplotlib
    matplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension. It provides an object-oriented API which allows plots to be embedded into applications using generic GUI toolkits, like wxPython, Qt, or GTK...

    , however, there are many other plotting packages such as HippoDraw
    HippoDraw
    HippoDraw is a powerful object oriented statistical data analysis package written in C++, with user interaction via a Qt-based GUI and a Python scriptable interface...

    , Chaco
    Enthought
    Enthought, Inc. is a software company based in Austin, Texas, USA that develops scientific computing tools using primarily the Python programming language...

    , and Biggles. Other popular graphics tools include Python Imaging Library
    Python Imaging Library
    Python Imaging Library is an external library for the Python programming language that adds support for opening, manipulating, and saving many different image file formats...

     and MayaVi
    MayaVi
    MayaVi is a scientific data visualizer written in Python, which uses VTK and provides a GUI via Tkinter. MayaVi was developed by Dr. Prabhu Ramachandran, is free and distributed under the BSD license. It is cross-platform and runs on any platform where both Python and VTK are available...

     (for 3D visualization).
  • Optimization. While SciPy has its own optimization package, OpenOpt
    OpenOpt
    OpenOpt is an open-source framework for numerical optimization, nonlinear equations and systems of them. It is licensed under the BSD license, making it available to be used in both open- and closed-code software. The package already has some essential ....

     has access to more optimization solvers and can involve Automatic differentiation
    Automatic differentiation
    In mathematics and computer algebra, automatic differentiation , sometimes alternatively called algorithmic differentiation, is a set of techniques to numerically evaluate the derivative of a function specified by a computer program...

    .
  • Advanced data analysis. Via RPy, SciPy can interface to the R
    R (programming language)
    R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....

     statistical package for advanced data analysis.
  • Database. SciPy can interface with PyTables, a hierarchical database package designed to efficiently manage large amounts of data using HDF5.
  • Interactive shell. IPython
    IPython
    IPython is an interactive shell for the Python programming language that offers enhanced introspection, additional shell syntax, tab completion and rich history.- Other features :...

     is an interactive environment that offers debugging and coding features similar to that which MATLAB
    MATLAB
    MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

     offers.
  • Symbolic mathematics. There are several Python libraries—such as PyDSTool Symbolic and SymPy
    SymPy
    SymPy is a Python library for symbolic computation. The stated goals of the library are to become a full-featured computer algebra system and to keep a simple code base to promote extensibility and comprehensibility. SymPy is written in Python....

    —that offer symbolic mathematics.

See also


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK