Skip to main content

Preconditoned ICA for Real Data

Project description

Picard : Preconditioned ICA for Real Data

|Travis|_ |Codecov|_ |Downloads|_

.. |Travis| image::
.. _Travis:

.. |Codecov| image::
.. _Codecov:

.. |Downloads| image::
.. _Downloads:

This repository hosts Python/Octave/Matlab code of the Preconditioned ICA
for Real Data (Picard) and Picard-O algorithms.

See the `documentation <>`_.


Picard is an algorithm for maximum likelihood independent component analysis.
It solves the same problem as Infomax, faster.
It uses a preconditioned L-BFGS strategy, resulting in a very fast convergence.

Picard-O uses an adaptation of that strategy to solve the same problem under the
constraint of whiteness of the signals. It solves the same problem as
FastICA, but faster.

Picard-O is able to recover both super-Gaussian and sub-Gaussian sources.


To install the package, the simplest way is to use pip to get the latest release::

$ pip install python-picard

or to get the latest version of the code::

$ pip install git+

The Matlab/Octave version of Picard and Picard-O is `available here <>`_.


To get started, you can build a synthetic mixed signals matrix:

.. code:: python

>>> import numpy as np
>>> N, T = 3, 1000
>>> S = np.random.laplace(size=(N, T))
>>> A = np.random.randn(N, N)
>>> X =, S)

And then use Picard to separate the signals:

.. code:: python

>>> from picard import picard
>>> K, W, Y = picard(X)

Picard outputs the whitening matrix, K, the estimated unmixing matrix, W, and
the estimated sources Y. It means that:

.. math::

Y = W K X


These are the dependencies to use Picard:

* numpy (>=1.8)
* matplotlib (>=1.3)
* numexpr (>= 2.0)
* scipy (>=0.19)

These are the dependencies to run the EEG example:

* mne (>=0.14)


If you use this code in your project, please cite::

Pierre Ablin, Jean-Francois Cardoso, Alexandre Gramfort
Faster independent component analysis by preconditioning with Hessian approximations
ArXiv Preprint, June 2017

Pierre Ablin, Jean-François Cardoso, Alexandre Gramfort
Faster ICA under orthogonal constraint
ArXiv Preprint, Nov 2017

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-picard, version 0.4.dev0
Filename, size File type Python version Upload date Hashes
Filename, size python_picard-0.4.dev0-py3.6.egg (34.9 kB) File type Egg Python version 3.6 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page