What’s new in the package

A catalog of new features, improvements, and bug-fixes in each release.

v0.12.dev

  • Deprecate covariances_X and cospectrum. #442 by @qbarthelemy

  • Add Python Array API support for NumPy/PyTorch backend transparency in core utility modules (base, covariance, distance, mean, geodesic, tangentspace, ajd, kernel, median), enabling execution on both NumPy arrays and PyTorch tensors with optional GPU acceleration and autograd support. #433 by @bruAristimunha

  • Move geometry modules (ajd, base, covariance, distance, geodesic, kernel, mean, median, tangentspace, test) from pyriemann.utils to a new standalone pyriemann.geometry subpackage. The old import paths (e.g. pyriemann.utils.mean, pyriemann.utils.kernel, pyriemann.utils.test) still work as backward-compatibility shims but emit a DeprecationWarning; rename to pyriemann.geometry.<module>. The private pyriemann.utils._backend and pyriemann._helpers modules also moved into pyriemann.geometry so that the subpackage is fully standalone (no internal pyriemann imports outside of itself). Module pyriemann.utils.utils is renamed to pyriemann.utils._check with the same shim+warning. Tests for moved modules are renamed test_utils_*test_geometry_*. #445 by @bruAristimunha

  • Enhance pyriemann.geometry.geodesic.geodesic() to accept alpha as an ndarray of shape (...,), allowing a different geodesic position per stacked matrix pair. #396 by @Fashad-Ahmed

  • Add example on Riemannian curvature analysis of sentence trajectories in language model embeddings, demonstrating how local metric tensors (SPD matrices) capture geometric structure in LLM latent spaces and enable classification of semantically distinct sentences using MDM. #448 by @SzczepanK112 and @gcattan

  • Add example on simulated SPD matrices to compare metrics. #451 by @qbarthelemy

  • Add Bini-Meini-Poloni (BMP) mean pyriemann.geometry.mean.mean_bmp(), and Cheap mean pyriemann.geometry.mean.mean_cheap(). #449 by @qbarthelemy

v0.11 (April 2026)

v0.10 (January 2026)

v0.9 (July 2025)

v0.8 (February 2025)

v0.7 (October 2024)

v0.6 (April 2024)

v0.5 (Jun 2023)

v0.4 (Feb 2023)

v0.3 (July 2022)

v0.2.7 (June 2021)

v0.2.6 (March 2020)

  • Remove support for Python 2, and update code for better scikit-learn v0.22 support. #79 by @alexandrebarachant

v0.2.5 (January 2018)

v0.2.4 (June 2016)

  • Improve documentation.

  • Add TSclassifier for out-of the box tangent space classification.

  • Add Wasserstein distance and mean.

  • Add KNearestNeighbor classifier.

  • Add softmax probabilities for MDM.

  • Add CSP for covariance matrices.

  • Add approximate joint diagonalization algorithms: JADE, PHAM, UWEDGE.

  • Add ALE mean.

  • Add multiclass CSP.

  • Correct param name in CospCovariances to comply to scikit-learn.

  • Correct attributes name in most modules to comply to the scikit-learn naming convention.

  • Add HankelCovariances estimation.

  • Add SPoC spatial filtering.

  • Add harmonic mean.

  • Add Kullback-Leibler mean.

v0.2.3 (November 2015)

  • Add multiprocessing for MDM with joblib.

  • Add Kullback-Leibler divergence.

  • Add Riemannian Potato.

  • Add sample_weight for mean estimation and MDM.

v0.2.2 (June 2015)

  • Add possibility to use a dictionary to define metrics used for MDM.

  • Add svd argument in ERPCovariances.

v0.1 (April 2015)

  • Add MDM and first utils (distance, mean, geodesic, covariance).

  • Add FgMDM, TangentSpace, FGDA.

  • Add ElectrodeSelection, Covariances, ERPCovariances, XdawnCovariances, Xdawn.

  • Add examples for motor imagery ad ERP.