# Numeric and Scientific

ALGLIB - http://www.alglib.net/ - numerical analysis library in C++ and C#, with Python and IronPython interfaces.

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 Python. (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.

FuncDesigner - http://openopt.org/FuncDesigner FuncDesigner is Python module to rapidly build functions and get their derivatives via automatic differentiation. Also you can perform integration, interpolation, interval analysis, uncertainty analysis, solve systems of linear/non-linear/ODE equations and numerical optimization problems coded in FuncDesigner by OpenOpt.

OpenOpt - http://openopt.org - a framework for numerical optimization and systems of linear/non-linear equations. Connects to dozens of solvers (some are C- or Fortran-written). Can optimize FuncDesigner models with automatic differentiation. Provides graphic output of convergence and some more numerical optimization "MUST HAVE" features.

SpaceFuncs - http://openopt.org/SpaceFuncs - a tool for 2D, 3D, N-dimensional geometric modeling with possibilities of parametrized calculations, numerical optimization and solving systems of geometrical equations with automatic differentiation.

!NLopt - http://ab-initio.mit.edu/nlopt - another library for nonlinear optimization, including many local/global optimization algorithms written in C, with a Python interface (as well as interfaces for several other languages).

jHepWork - http://jwork.org/jhepwork - a multiplatform data-analysis framework written in Java. The main programming language is Jython, a clone of Python written in Java. Contains Java libraries for numerical calculations and visualisation of scientific graphs. Contains an interactive Python prompt.

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://wiki.python.org/moin/PyACTS -- 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://launchpad.net/escript-finley -- escript is a Python module to define and solve coupled, non-linear, time-dependent partial differential equations (PDEs). The user has to implement high-level time integration 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 and MPI. It is compatible with NumPy and VTK for visualization.

PyIMSL - http://www.roguewave.com/products/imsl-numerical-libraries/pyimsl-studio.aspx -- 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 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. PyIMSL Studio is available for download at no charge for non-commercial use or for commercial evaluation.

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/).

scikit-learn - http://scikit-learn.sourceforge.net/ -- machine learning and data mining in Python, using NumPy and SciPy

mlpy - https://mlpy.fbk.eu/ -- Machine Learning PYthon -- high-performance Python module for Predictive Modeling.

graph-tool - http://graph-tool.skewed.de -- A python module for efficient analysis of graphs (aka. networks), with algorithms implemented in C++ with the Boost Graph Library.

# 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 many others.

clnum - http://calcrpnpy.sourceforge.net/clnum.html - Class Library For Numbers wrapping

# 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.

PySAL Python Spatial Analysis LIbrary - an open source cross-platform library of spatial analysis functions written in Python. It is intended to support the development of high level applications for spatial analysis.

# 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 - http://code.enthought.com/projects/mayavi/ - application and library for interactive visualization in 3D of scientific data. High level and targeted toward the end user/application developer.

VisTrails - http://vistrails.org - VisTrails is an open-source scientific workflow and provenance management system developed at the University of Utah that provides support for data exploration and visualization.

# 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/ -- COmparative GENomic Toolkit. Another popular and extensive library for genomic biology.

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

bx-python - http://bitbucket.org/james_taylor/bx-python/ -- Library and associated set of scripts to allow for rapid implementation of genome scale-analyses. Also a fundamental part of the ongoing Galaxy and ESPERR projects.

p4 - http://bmnh.org/~pf/p4.html -- Python package for phylogenetics, useful for programmatic manipulation of phylogenetic data and trees, including maximum likelihood and Bayesian inference.

UCSF Chimera - http://www.cgl.ucsf.edu/chimera/ -- UCSF Chimera is a highly extensible program for interactive visualization and analysis of molecular structures and related data, including density maps, supramolecular assemblies, sequence alignments, docking results, trajectories, and conformational ensembles. High-quality images and animations can be generated. Chimera includes complete documentation and several tutorials, and can be downloaded free of charge for academic, government, non-profit, and personal use.

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

GarlicSim is a Pythonic framework for simulations. It can be used with simulations in any scientific field. Official website

# Links

NumericAndScientific/Libraries -- useful libraries

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

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