Libraries and other language issues for Python

Mathematical and Scientific Processing in Python

Copyright 2010 by Stephen Vermeulen
Last updated: 2010 Jun 26
Multimedia and Python





1a 2d 97 algorithm analyze arch arrays background beta border calls codes complex conference demonstration dictionaries discrete encountered error eval expressions extended fashion graphs homepage hu ieee ifi infected integration learn logic mathematica meeting method modular negative networks offered others paid protocol purposes signal solve solver sorting spread spyced strategy suited symbolic technique thegreenplace totally washington whether
Python is well suited to writing programs to do mathematical or scientific processing tasks, especially short programs that need to read some data, perform some processing and then write out some results.
  • 2010-Jun-26: Finding Probability Distribution Parameters from Percentiles uses the SciPy library to estimate the parameters that would result in a probability distribution that would match certain observations. [9260] [1]
  • 2010-May-31: Pandas is a project to optimize NumPy for time series and cross-sectional data analysis, including storage, regression and plotting. [9158] [1]
  • 2010-May-28: How Fisher-Yates shuffling works. [9138] [1]
  • 2010-Jan-29: FuzzyPy is a library for working with fuzzy sets, graphs and math in Python. [8946] [1]
  • 2009-Nov-27: obspy.signal is a module that provides signal processing routines suited for seismology. [8809] [1]
  • 2009-Nov-04: An implementation of the Talbot method for numerical inversion of the Laplace Transform. A second version of this using mpmath for extended precision. [8699] [1] [2]
  • 2009-Oct-23: skidmarks is a module that searches for runs (non-randomness) in sequences, this includes a Wald-Wolfowitz test. [8654] [1]
  • 2009-Oct-09: ruffus is a module that implements light-weight computational pipelines. [8607] [1]
  • 2009-Sep-22: papy provides parallel pipelines for Python. [8550] [1]
  • 2009-Sep-21: OpenOpt is a numerical optimization framework. The project home page is here and more recently here. Some additional modules, FuncDesigner and DerApproximator have been added to assist. [2221] [1]
  • 2009-Sep-21: Mr is a module to provide functions for working with Carmichael numbers. [8543] [1]
  • 2009-Sep-18: pyncomb is a collection of functions for working with combinatorial objects (permutations, subsets, ...). [8521] [1]
  • 2009-Sep-02: PyIMSL is a Python wrapper for the IMSL C Numerical Library for Math and Statistics. [8447] [1]
  • 2009-Aug-14: pulp-or (see also Optimization with PuLP) is a linear programming optimization system. [8401] [1]
  • 2009-Aug-13: Gigbayes is a Bayesian learning filter that tries to extract jobs that are of interest to its user from the Craigslists. The author has strong praise for jQuery and uses Reverend to do the Bayesian filtering. [8397] [1]
  • 2009-Jul-24: obspy.signal is a package of signal processing routines for seismology. [8321] [1]
  • 2009-Jul-24: Getting started with the SciPy library is a short introduction to Scientific Python. [8319] [1]
  • 2009-Jul-24: This article discusses IEEE floating point arithmetic in Python including such nastiness as the concepts of infinity (inf) and not-a-number (nan). [8317] [1]
  • 2009-Jul-20: Some notes on how to work with probability distributions supported by SciPy. [8306] [1]
  • 2009-Jul-20: The MinMax algorithm in Python. This is an algorithm used to search the move space in complex games for minimizing the maximum possible loss. [8302] [1]
  • 2009-Jul-16: Searching for solutions to the game "muggins" or "fives" that is played with dominoes. [8284] [1]
  • 2009-Jul-15: Disco is an implementation of the Monte Carlo UCT technique for playing the Game of Go. [8274] [1]
  • 2009-Jun-15: The odd combination of XKCD and Python leads to exploration of the Knapsack problem and two solutions in Python. [8147] [1]
  • 2009-Jun-11: mpmath, multiple precision arithmetic in Python. The project's home page is here [2428] [1]
  • 2009-Jun-04: A demonstration of the CORDIC algorithm for polar-to-rectangular coordinate conversions, this implements sine and cosine functions using a series of integer shifts and additions. CORDIC has been used for other transcendental functions and was used in the HP-35 calculator. [8076] [1]
  • 2009-May-19: Lancos Gamma Approximation. [7995] [1] [2]
  • 2009-May-08: FuzzPy brings fuzzy logic to Python. [7954] [1]
  • 2009-May-01: simplestats is a module for simple statistical analysis, home page is here. [7924] [1]
  • 2009-Apr-14: escript, a python based environment for implementing mathematical models, in particular partial differential equations. Now here on PyPI. [267] [1]
  • 2009-Mar-31: pythonOCC (here on PyPI) is a set of open-source Python bindings for the 3D modeling and simulation library: OpenCascade. [7815] [1]
  • 2009-Mar-27: bvp_solver is a boundary value problem solver. [7804] [1]
  • 2009-Mar-25: Theano is a Python library for defining, optimizing and evaluating mathematical expressions. [7788] [1]
  • 2009-Mar-24: Bloom filters are another interesting application for hashing functions. They are used for testing, in a probabilistic fashion, whether an element is a member of a set. pybloom is a Python implementation of a bloom filter. [7503] [1]
  • 2009-Mar-23: Computing Normal Probabilities in IronPython includes a function for calculating phi(x) which is then used to calculate the normal probability - this is implemented in standard Python code so will work with CPython too. [7770] [1]
  • 2009-Mar-20: pySTEP is a light Genetic Programming API. [7754] [1]
  • 2009-Mar-13: pycuda (home page is here, the documentation is here) provides access to Nvidia's CUDA parallel computation API. So if you really want to crunch a lot of numbers, now is your chance to do it from the comforts of Python. The July'08 meeting of ChiPy is taking a look at CUDA. An introductory presentation on using PyCuda. PyopenCL is a Python wrapper for OpenCL. [6356] [1] [2]
  • 2009-Feb-24: MayaVi a 3D data visualization package for Python, the second version adds support for numpy arrays. This is being included with the Enthought Python system. [172] [1] [2] [3]
  • 2009-Feb-23: DOLFIN solves ordinary and partial differential equations using the FEniCS environment. [7633] [1]
  • 2009-Feb-23: PyBrain is going to be a library for machine learning on Python. [7630] [1]
  • 2009-Feb-13: Evolution optimization strategy presents a genetic algorithm for solving search and optimization problems. The first comment to this shows how to do the same thing with pyevolve. [7578] [1] [2]
  • 2009-Feb-03: brian is a clock-driven simulator for spiking neural networks. [7526] [1]
  • 2009-Jan-30: SimPy, (also here) process-based, discrete-event simulation in Python [250] [1]
  • 2009-Jan-24: Coopr is a Python repository for optimization packages. [7480] [1]
  • 2008-Dec-11: pymc is a Markov Chain Monte Carlo sampling toolkit. [7338] [1]
  • 2008-Dec-11: pyevolve is a genetic algorithms framework for Python. [7334] [1]
  • 2008-Dec-09: SciMath provides scientific and mathematical calculations beyond those offered by SciPy. [7327] [1]
  • 2008-Dec-09: The State of Graphs in Python, discusses the current lack of support for graph theory in Python. It includes a link back to some early thoughts on this using dictionaries and lists from Guido. [7324] [1]
  • 2008-Dec-08: PyDDE is an equation solver for delay differential equations. [7315] [1]
  • 2008-Dec-03: Using the stepping stone algorithm to solve the transhipment problem, which is a cost-minimization optimization issue. [7293] [1] [2]
  • 2008-Nov-27: BIP provides Bayesian inference tools for Python. [7269] [1]
  • 2008-Nov-17: Walker's alias method for random objects with different probabilities. [7225] [1] [2]
  • 2008-Nov-14: Numdifftools is a package for automatic numerical differentiation. [7217] [1]
  • 2008-Nov-05: Generating random numbers with an arbitrary distribution. [7157] [1]
  • 2008-Nov-04: The Gillespies SSA algorithm implemented in Python. This is used to model the spread of disease from an infected individual to a population. [7147] [1]
  • 2008-Oct-29: pebl is a Python environment for Bayesian learning. The project home page is here. [6398] [1]
  • 2008-Oct-28: python-graph is a library for working with graphs in Python. The project homepage is here. [6781] [1]
  • 2008-Oct-27: clnum adds rational numbers and arbitrary precision floating point numbers to Python. [7102] [1]
  • 2008-Oct-22: MDP is a Modular toolkit for Data Processing. It sounds like neural net type software. [6172] [1]
  • 2008-Sep-25: aipy is an Astronomical Interferometry package written in Python. It includes deconvolution code in Python. [6920] [1]
  • 2008-Sep-25: This article approximates the Zeta function (for large values) with 1/x, the author uses some simple matplotlib calls to analyze the problem graphically. [6919] [1]
  • 2008-Sep-24: The cvxopt convex optimization package appears to contain a lot of other useful functions for linear algebra and even eigenvectors. [6909] [1]
  • 2008-Sep-22: In Generating correlated random numbers the author applies a method described in Generating Correlated Random Numbers to generate correlated random numbers with Python. [6900] [1] [2]
  • 2008-Aug-29: PyIMSL provides wrappers for the IMSL C Numerical Library. [6757] [1]
  • 2008-Aug-12: py-nnma provides non-negative matrix approximation functions. [6669] [1]
  • 2008-Aug-11: pymbolic is a lightweight library to perform symbolic calculations such as derivatives, polynomials expansion or expression simplification. [5943] [1]
  • 2008-Aug-11: PyUblas is a glue layer between Numpy and the Boost.Ublas (basic linear algebra package) for use with Boost.Python. Also available here on PyPi. [5612] [1]
  • 2008-Jul-30: The Gamma and Error functions are being considered for addition to the Python 2.7 standard libraries. [6609] [1]
  • 2008-Jul-16: Newton's method can be used to implement a faster division algorithm. [6531] [1]
  • 2008-Jul-13: gnofract4d is a fractal image generation program (which can view the Mandelbrot set among other things). [6514] [1] [2]
  • 2008-Jun-26: munkres.py is an implementation of the Munkres algorithm (also known as Kuhn-Munkres or the Hungarian algorithm) which is used to solve the Assignment Problem. The assignment problem is used to determine the best way to use n workers to do n jobs at least cost when the cost to complete a particular job depends on which worker does it. pyLAPJV is another approach to this problem, this implements the Jonker-Volgenant algorithm. [5140] [1]
  • 2008-Jun-25: A view of the popular Python libraries that make up a useful scientific computing/visualization software stack/platform. [6430] [1] [2]
  • 2008-Jun-24: GDAL - Geospatial Data Abstraction Library, also available here on PiPi. [259] [1]
  • 2008-Jun-16: pymunk (home page is here) is a Python wrapper for the 2D physics library called Chipmunk. [6357] [1]
  • 2008-Jun-15: pyephem is a package for performing astronomical calculations. This is now on Launchpad. [6325] [1] [2]
  • 2008-Jun-11: scipy-clusteris used for generating, visualizing and analyzing hierarchical clusters. [6315] [1]
  • 2008-May-27: Genetic Algorithm Library, this is a rather extensive library for genetic algorithms and includes a lot of background documentation. [6238] [1]
  • 2008-May-13: NZMATH (here on the cheeseshop) is a number theory calculation system written in Python. [6155] [1]
  • 2008-May-12: Object oriented Bayesian Inference in Python. [6145] [1]
  • 2008-Apr-21: meshpy (here on the cheeseshop) is a finite element mesh generator written partially in Python. [5945] [1]
  • 2008-Apr-21: fempy is a small finite element package written in Python. [5944] [1]
  • 2008-Apr-13: Robust topological sorting and Tarjan's algorithm in Python talks about sorting graphs in the presence of cyclic links, this could be useful in things like garbage collection, dependency generation and revision control. [5789] [1]
  • 2008-Apr-11: FixedPoint is a pure Python module for manipulating fixed point numbers of essentially arbitrary precision. This includes both basic and transcendental functions. [5769] [1]
  • 2008-Mar-20: Erasure Codes can be used to transform N blocks of data into N+M blocks of data for redundancy purposes allowing the original N blocks to be recreated from some of the N+M blocks in the event of data corruption or loss. zfec is an implementation of a fast erasure codec that can be used with Python (it is part of the AllMyData project). [5308] [1] [2]
  • 2008-Mar-04: iWand is a GUI for the pycwt wavelet analysis software. [5223] [1]
  • 2008-Mar-01: SympyCore is a pure Python computer algebra system. [5201] [1]
  • 2008-Feb-26: Search for the maximum value in each row of a matrix that is known to be totally monotone. [5167] [1] [2]
  • 2008-Feb-26: Gauss-Jordan elimination in Python for solution of systems of linear equations. [5166] [1]
  • 2008-Feb-26: Various Python based solvers for mathematical problems such as linear equations and optimization. [5165] [1]
  • 2008-Feb-13: PyChem is a multivariate analysis package using wxPython for the GUI. [5093] [1]
  • 2008-Feb-12: Using simulated annealing to solve a problem in vocabulary learning. The idea is to learn the more common words first to maximize the number of sentences that can be understood at an earlier time. An additional presentation on this approach. [5084] [1]
  • 2008-Jan-24: SUMMON, a module for rapid prototyping of 2D visualizations. Also can be found here. [2148] [1]
  • 2008-Jan-18: A simple genetic algorithm [4961] [1] [2]
  • 2007-Dec-17: cassowarypy is a Python wrapper for a linear constraint solver called cassowary. [4440] [1]
  • 2007-Oct-22: earth_distance, is a collection of modules for working with points on a spherical object. [3496] [1]
  • 2007-Oct-05: sympy, is a computer algebra system in Python (home page). This has reached version 0.5.4 now. [244] [1]
  • 2007-Sep-17: paida is a Python package for scientific data analysis and plotting. [2136] [1]
  • 2007-Aug-25: MOSEK is a commercial optimization package (that is available for some free use) that has an API with a Python interface [274] [1]
  • 2007-Aug-24: pyformex, a Python implementation of Formex algebra, this is useful in creating 3D geometrical structures (and may be used in finite element preprocessing and medical imaging tasks) [273] [1]
  • 2007-Aug-24: An example of using MatPlotLib to create PNG formatted graphs [272] [1]
  • 2007-Aug-24: Scientific Computing Associates Inc. makes a number of number crunching packages (including things to distribute a problem over a number of processors).  Their NetWorkSpaces product can be used with Python and it is available under a dual licence model allowing for free use in open source projects and a paid mode in commercial products. [271] [1]
  • 2007-Aug-24: Amoeba, maximizes a function of 1 or more variables using the simplex method of Nelder and Mead [270] [1]
  • 2007-Aug-24: ScientificPython is a collection of Python modules for scientific computation, in Nov'06 they added some support for parallel computation. [269] [1]
  • 2007-Aug-24: Pythonika, a MathLink module for Mathematica that makes it possible to write and run Python code within a Mathematica notebook. [268] [1]
  • 2007-Aug-24: igraph is a Python module (home page) that provides high performance graph data structures and algorithms, this is based on the C code igraph engine so is very fast. [266] [1]
  • 2007-Aug-24: evogrid, Distributed Evolutionary Computation Framework [265] [1]
  • 2007-Aug-24: PyVISA, a module to control GPIB, RS232 and USB connected instruments through the VISA (Virtual Instrument Software Architecture) system [264] [1]
  • 2007-Aug-24: PyTables, an interface to the HDF5 libraries, this provides an hierarchical database for efficient management of very large amounts of data. [263] [1]
  • 2007-Aug-24: python-cluster, a package to algorithmically group items into clusters within a list based on some sort of "nearness" metric PyNGL is a Python module for visualizing scientific data [262] [1]
  • 2007-Aug-24: Model Builder, a design and simulation tool for ordinary differential equations. [261] [1]
  • 2007-Aug-24: Paida, a pure Python scientific analysis package. Needs Python 2.3 and TCL/Tk, includes some curve fitting capabilities. [260] [1]
  • 2007-Aug-24: SyFi, Symbolic Finite Elements (home page: syfi.sf.net) [258] [1]
  • 2007-Aug-24: The 2006 SciPy conference will be held Aug 17-18 at CalTech in Pasadena, CA. [257] [1]
  • 2007-Aug-24: OpenBayes, bayesian network in Python [256] [1]
  • 2007-Aug-24: PyWavelets, discrete wavelet transform in Python. This is a module for calculating Simple and Inverse Discrete Wavelet Transforms as well as wavelet Packets and the Stationary Wavelet Transform. [255] [1]
  • 2007-Aug-24: Difficulties encountered in the installation of matplotlib [254] [1]
  • 2007-Aug-24: PyIE, an Inference Engine in Python [253] [1]
  • 2007-Aug-24: Python Lover's Evolutionary Algorithms [252] [1]
  • 2007-Aug-24: According to this, Fermilab uses a Python package called Enstore to manage a 3 PetaByte data store to which they are adding about 25TeraBytes per day. [251] [1]
  • 2007-Aug-24: SciPy_core, is now in beta, this is destined to replace the old numeric Python package for doing numerical analysis with Python. SciPy can now be found at www.scipy.org. SciPy includes modules for graphics and plotting, optimization, integration, special functions, signal and image processing, genetic algorithms, ODE solvers and others. [249] [1]
  • 2007-Aug-24: Numerical and combinatorial problems solved using Genetic Algorithms in Python. [248] [1]
  • 2007-Aug-24: PGAPy, a Python wrapper for the pgapack, parallel genetic algorithm library [247] [1]
  • 2007-Aug-24: papyros, another attempt to add parallel processing to Python [246] [1]
  • 2007-Aug-24: seppo, a simple attempt to add parallel processing to Python [245] [1]
  • 2007-Aug-24: Swiginac provides symbolic formula manipulation from within Python, ah the good old days of MACSYMA return! [243] [1]
  • 2007-Aug-24: Veusz, a scientific plotting package aimed at making PostScript output [242] [1]
  • 2007-Aug-24: constraint, a constraint satisfaction problem solver. Here is Python-constraint, which might be the same thing. [240] [1]
  • 2007-Aug-24: DAP, data access protocol, a client/server protocol for serving up large blocks of data for scientific analysis in visulaization. The home page for this is pyDAP.org. [239] [1]
  • 2007-Aug-24: Pyslice, a module to support parametric modelling [238] [1]
  • 2007-Aug-24: Is Python fast enough to do number crunching? This artical shows it to be about 1/17th the speed of C++, but unless your problem is really large, or it must be solved in a very short time this means that Python may well be acceptable. [237] [1]
  • 2007-Aug-24: NetworkX, is a network analysis library, written in Python, that includes the Dijstra algorithm and has some graphing capability [236] [1]
  • 2007-Aug-24: PyX is another graph plotting package for Python [235] [1]
  • 2007-Aug-24: DISLIN, (home page is www.dislin.de) is a graph plotting library that can be used from Python [234] [1]
  • 2007-Aug-24: Using Python to do statistical calculations. [233] [1]



              back to vermeulen.ca home