# Numeric and Scientific

PyGSL - http://pygsl.sourceforge.net/ -- This project provides a python interface for the GNU scientific library (gsl).

NumPy - http://numpy.scipy.org/ -- Numerical Python adds a fast, compact, multidimensional array facility to Python. NumPy is the successor to both Numeric and Numarray.

**Deprecated**: Numeric - http://www.numpy.org/ -- Numerical Python adds a fast, compact, multidimensional array language facility to Pytghon. (Note: superseded by NumPy)**Deprecated**: NumArray - http://stsdas.stsci.edu/numarray/index.html -- Numarray is a reimplementation of Numeric which adds the ability to efficiently manipulate large numeric arrays in ways similar to Matlab and IDL. (Note: superseded by NumPy)

SciPy - http://www.scipy.org/ SciPy is an open source library of scientific tools for Python. SciPy supplements the popular NumPy module, gathering a variety of high level science and engineering modules together as a single package. SciPy includes modules for linear algebra, optimization, integration, special functions, signal and image processing, statistics, genetic algorithms, ODE solvers, and others.

SymPy - http://code.google.com/p/sympy/ SymPy is a symbolic manipulation package, written in pure Python. Its aim is to become a full featured CAS in Python, while keeping the code as simple as possible in order to be comprehensible and easily extensible.

ScientificPython - http://dirac.cnrs-orleans.fr/ScientificPython/ -- ScientificPython is a collection of Python modules that are useful for scientific computing. In this collection you will find modules that cover basic geometry (vectors, tensors, transformations, vector and tensor fields), quaternions, automatic derivatives, (linear) interpolation, polynomials, elementary statistics, nonlinear least-squares fits, unit calculations, Fortran-compatible text formatting, 3D visualization via VRML, and two Tk widgets for simple line plots and 3D wireframe models. There are also interfaces to the netCDF library (portable structured binary files), to MPI (Message Passing Interface, message-based parallel programming), and to BSPlib (Bulk Synchronous Parallel programming).

PyACTS- http://www.pyacts.org -- PyACTS is a collection of Python Modules that are very useful to Parallel Computing in a High Performance Computing environment. This packages incorporates several modules like PyBLACS (allows communication data for Linear Algebra), PyPBLAS (distributed Matrix Operations) and PyScaLAPACK (solve linear systems and get the eigenvalue problems). These libraries are part of PyACTS project that provide interfaces to the ACTS Collection. Also is provided a parallel interpreter for using this package that implements message-based parallel programming using MPI.

PyDSTool - http://pydstool.sourceforge.net -- PyDSTool is an integrated simulation, modeling and analysis package for dynamical systems (including ODEs, DAEs, maps, and hybrid systems) and scientific data. Building on SciPy classes, the package also supports symbolic expression processing, bifurcation analysis, and enhanced arrays for "index-free" and highly contextualized scientific data manipulation. Model building tools use symbolic expression and hierarchical specification classes to ease the development and analysis of complex models. This includes automated compilation of symbolic representations of models into fast numerical code using enhanced legacy Fortran and C integrators for both stiff and non-stiff systems.

escript - https://shake200.esscc.uq.edu.au/twiki/bin/view/ESSCC/EsysUser -- escript is a python module to define and solve coupled, non-linear, time-dependend partial differential equations (PDEs). The user has to implement high-level time intergration schemes and iteration schemes to reduce the problem to the solution of steady, linear systems of PDEs which are solved by a suitable PDE solver library. The current version uses the FEM solver library finley but the design is open and other libraries can be used. escript is parallelized for OpenMP (MPI is under construction). It is compatible with NumArray and uses VTK for visualization.

PyIMSL - http://www.vni.com/products/imsl/pyimsl/overview.php - PyIMSL is a collection of Python wrappers to the mathematical and statistical algorithms in the IMSL C Numerical Library. PyIMSL offers a quality Python interface to the largest collection of portable statistical and analytical algorithms available for Python. Developers can use Python, PyIMSL and the IMSL C Library for rapid prototyping. They can then directly deploy the Python application into production or if they choose to rewrite the application in C/C++ use the same math and stats algorithms in both development environments. PyIMSL Studio - http://www.vni.com/pyimslstudio is a packaged, supported and documented development environment designed for deploying mathematics and statistics prototype models into production applications. PyIMSL Studio includes the Python language distribution and contains both open source and proprietary components that create a fully supported and documented platform for analytic prototyping and production development.

PyGTS - http://pygts.sourceforge.net/ -- PyGTS is a python package used to construct, manipulate, and perform computations on 3D triangulated surfaces. It is a hand-crafted and pythonic binding for the GNU Triangulated Surface (GTS) Library (http://gts.sourceforge.net/).

# Multi precision math

MultiprecisionSoftwareDirectory (http://crd.lbl.gov/~dhbailey/mpdist/index.html) - Python wrapping unknown

MAPM (http://www.tc.umn.edu/~ringx004/mapm-main.html) - Python wrapping unknown

GmPy (http://gmpy.sourceforge.net/) - GNU Multiple Precision library wrapping

mpmath - http://code.google.com/p/mpmath/ - mpmath is a pure Python library for arbitrary-precision floating-point arithmetic, with support for complex numbers. Implements all the transcendental functions from Python's math and cmath modules and a few others.

# The Grid

Grid is a type of parallel and distributed system that enables the sharing, selection, and aggregation of resources distributed across "multiple" administrative domains based on their (resources) availability, capability, performance, cost, and users' quality-of-service requirements.

PyGlobus - Globus toolkit bindings for python

PEG - Python Extensions for the Grid

Ganga - Grid job management interface.

DIANE - Python user-level middleware layer for Grids.

# Geographic Information System (GIS), Mapping, Image Processing and Analysis

Thuban is a Python Interactive Geographic Data Viewer with the following features:

- Vector Data Support: Shapefile, PostGIS Layer, Raster Data Support: GeoTIFF Layer, Comfortable Map Navigation, Object Identification and Annotation, Legend Editor and Classification, Table Queries and Joins, Projection Support, Printing and Vector Export, API for Add-Ons (Extensions), Multi-Language Support: English, French, German, Hungarian, Italian, Russian and Spanish, User Manual (English) Multi-platform (GNU/Linux, Windows, ...). (Noli Sicad)

Python Cartographic Library, OWSLib, GeoJSON, and Rtree - packages for GIS programming and a cartographic application framework.

# Image analysis and visualization

VTK - http://vtk.org/ - is an open source, freely available software system for 3D computer graphics, image processing, and visualization used by thousands of researchers and developers around the world. It has a very good python interface.

WrapITK - http://code.google.com/p/wrapitk/ - interface ITK http://itk.org and several languages, with a particular focus on python. ITK module used with python interpreter is particulary useful for quick and easy prototyping of image analysis procedures. Some glue classes allow to efficiently pass data to others modules like NumPy or VTK.

PIL - http://www.pythonware.com/products/pil - Python Imaging Library provides basic image handling and processing for various image types including jpg, gif, tiff, and bmp. Reads and writes graphics files. Allows pixel-by-pixel data access and has functions for cropping and transposing an image. Also has various filters built-in.

matplotlib - http://matplotlib.sourceforge.net/ - matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers, and six graphical user interface toolkits.

Mayavi - https://svn.enthought.com/enthought/wiki/MayaVi - application and library for interactive visualization in 3D of scientific data. High level and targeted toward the end user/application developer.

# Life sciences

Biopython - http://biopython.org/wiki/Main_Page -- a set of freely available tools for biological computation and bioinformatics. It includes pycluster, a binding for the Cluster software.

PyCogent - http://pycogent.sourceforge.net/ -- another popular library for genomic biology.

PyChem - http://pychem.sf.net/ -- a cross-platform open source package for multivariate analysis, that includes a graphical user interface.

Modeller - http://salilab.org/modeller -- used for homology or comparative modeling of protein three-dimensional structures. Control scripts are Python based.

PyMol - http://www.pymol.org/ -- 3D molecular viewer, suitable (and widely used) for publications and presentations. Fully scriptable in Python.

# Miscellaneous

PyLink is an open source Python module for interfacing with the EyeLink eye tracking hardware. Find it at PyLink

SimPy is an open-source discrete-event simulation package in Python. Read more at its Homepage

# Links

NumericAndScientific/Libraries -- useful libraries

NumericAndScientific/Formats -- modules for reading and writing various file formats

CERN SEAL Python Services -- Automatic Python/C/C++ binding