pyRiemann is a Python package for machine learning with multivariate data, using the Riemannian geometry of symmetric (resp. Hermitian) positive definite (SPD) (resp. HPD) matrices. It provides a high-level interface fully compatible with scikit-learn, making it easy to build powerful pipelines for classification, regression, and clustering.
Key features:
Riemannian Geometry – Leverage distances, means, and tangent space projections on the manifold of SPD/HPD matrices.
scikit-learn Compatible – All estimators follow the scikit-learn API. Build pipelines, use cross-validation, and grid search out of the box.
Brain-Computer Interfaces – State-of-the-art processing and classification of EEG, MEG, and fNIRS signals.
Remote Sensing – Apply Riemannian clustering to radar image segmentation.
Transfer Learning – Domain adaptation tools for cross-session and cross-subject generalization.
NumPy and PyTorch Backends – Core geometry functions support both backends transparently through the Python Array API, enabling optional GPU acceleration and autograd when PyTorch tensors are passed in.