MDP 3.5 released! This is a bug-fix release

Note that from this release MDP is in maintenance mode. 13 years after its first public release, MDP has reached full maturity and no new features are planned in the future.

If you plan to do serious machine learning in Python, use sklearn. Note though that some algorithms, notably SFA and Growing Neural Gas, are only available in MDP. We would be happy to support the porting of these algorithms to sklearn!

MDP works equally well in Python 2 and Python 3. All code examples in the documentation are using Python 2 though.

Modular toolkit for Data Processing (MDP) is a Python data processing framework.

From the user’s perspective, MDP is a collection of supervised and unsupervised learning algorithms and other data processing units that can be combined into data processing sequences and more complex feed-forward network architectures.

From the scientific developer’s perspective, MDP is a modular framework, which can easily be expanded. The implementation of new algorithms is easy and intuitive. The new implemented units are then automatically integrated with the rest of the library.

The base of available algorithms is steadily increasing and includes signal processing methods (Principal Component Analysis, Independent Component Analysis, Slow Feature Analysis), manifold learning methods ([Hessian] Locally Linear Embedding), several classifiers, probabilistic methods (Factor Analysis, RBM), data pre-processing methods, and many others.

Using MDP is as easy as:

>>> import mdp

>>> # perform PCA on some data x
>>> y = mdp.pca(x) 

>>> # perform ICA on some data x using single precision
>>> y = mdp.fastica(x, dtype='float32') 

To learn more about MDP, read through the Documentation.