pyriemann
Machine learning for multivariate data with Riemannian geometry
Decision gist · record as of 2026-08-14
Yes. Active maintenance, low install friction, permissive license, and no known vulnerabilities make it safe to adopt. The scikit-learn-compatible API and support for both NumPy and PyTorch backends provide flexibility. Install if you work with multivariate biosignals, BCI systems, or remote sensing imagery requiring Riemannian geometric classification.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9; designed for multichannel time-series data in specific format (n_epochs x n_channels x n_times).
- Low friction: pure-Python wheel distribution with well-established dependencies (numpy, scipy, scikit-learn).
- Active maintenance with a recent release 44 days ago and ongoing repository activity.
License · maintenance · safety
BSD (3-clause) (permissive) — BSD 3-clause permissive license allows commercial and private use with minimal restrictions; attribution required but no copyleft obligations.
last release 2026-07-01 (44 days) · last repo commit 2026-08-14 · 773 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 89,512 downloads/mo, #13,654 on PyPI
Alternatives
Verify before relying
pip install pyriemann
import pyriemann
from pyriemann.estimation import Covariances
from pyriemann.classification import MDM
X = ... # EEG data: n_epochs x n_channels x n_times
y = ... # labels
cov = Covariances().fit_transform(X)
mdm = MDM()
print(mdm.fit(cov, y).score(cov, y))- Whether PyTorch backend integration requires PyTorch as an optional dependency or works transparently when installed
- Performance characteristics and scalability limits for large covariance matrix datasets
- Specific BCI paradigm support beyond motor imagery, ERP, and SSVEP mentioned in documentation
What it is and what it does
pyRiemann is a machine learning library that applies Riemannian geometry to classify multivariate data, particularly biosignals like EEG, MEG, and EMG. It estimates covariance matrices from multichannel time series and uses the geometric properties of symmetric positive definite (SPD) matrices to build classifiers. The package follows scikit-learn conventions, making it easy to integrate into standard machine learning pipelines and workflows.
The library was designed around brain-computer interface (BCI) applications, supporting motor imagery, event-related potentials, and steady-state visually evoked potentials paradigms. It also handles remote sensing tasks involving hyperspectral and synthetic-aperture radar imagery. Core utilities support both NumPy and PyTorch backends transparently through the Python Array API, enabling optional GPU acceleration when PyTorch tensors are used. Transfer learning between sessions or subjects is supported through extended labels.
Use it for
- Build BCI systems that classify motor imagery or event-related potentials from multichannel EEG recordings
- Process hyperspectral remote sensing imagery by estimating and classifying covariance matrices over spatial regions
- Perform transfer learning across BCI recording sessions or subjects using Riemannian geometry
- Classify synthetic-aperture radar (SAR) images using Hermitian positive definite matrix geometry
- Pipeline covariance estimation with tangent-space projection and standard classifiers
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Active maintenance, low install friction, permissive license, and no known vulnerabilities make it safe to adopt. The scikit-learn-compatible API and support for both NumPy and PyTorch backends provide flexibility. Install if you work with multivariate biosignals, BCI systems, or remote sensing imagery requiring Riemannian geometric classification.
Install
pyriemann on PyPI
Before you install
Low friction: pure-Python wheel distribution with well-established dependencies (numpy, scipy, scikit-learn). Active maintenance with a recent release 44 days ago and ongoing repository activity.
Requires Python >=3.9; designed for multichannel time-series data in specific format (n_epochs x n_channels x n_times).
License in practice
BSD 3-clause permissive license allows commercial and private use with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
pip install pyriemann
import pyriemann
from pyriemann.estimation import Covariances
from pyriemann.classification import MDM
X = ... # EEG data: n_epochs x n_channels x n_times
y = ... # labels
cov = Covariances().fit_transform(X)
mdm = MDM()
print(mdm.fit(cov, y).score(cov, y))
Verify before relying
- Whether PyTorch backend integration requires PyTorch as an optional dependency or works transparently when installed
- Performance characteristics and scalability limits for large covariance matrix datasets
- Specific BCI paradigm support beyond motor imagery, ERP, and SSVEP mentioned in documentation
Package facts
| License | BSD (3-clause) permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesnumpyscipyscikit-learnarray-api-compatarray-api-extrajoblibmatplotlib |
| Maintenance | Actively maintained 44 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 89,512 / month, #13,654 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pyriemann-0.12-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “riemannian geometry machine learning”
- pyriemannpyRiemann provides scikit-learn-compatible machine learning…
- warp-langWarp is a Python framework that JIT-compiles regular Python functions…
- tensorflow-graphicsTensorFlow Graphics provides differentiable graphics and geometry…
Give your agent the search over MCP, or paste the wish link into any chat.
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to call 100+ LLM providers (OpenAI, Anthropic, Gemini, Bedrock, Azure, and others) using OpenAI-compatible API format, available as both a Python SDK and a self-hosted AI Gateway proxy server.
Install it if you need to work with multiple LLM providers or want to centralize LLM routing in your organization.
Client library and CLI tool for downloading, uploading, and managing models, datasets, and repositories on the Hugging Face Hub platform.
Install it if you work with Hugging Face Hub models or datasets.
LangChain provides a framework for building agents and LLM-powered applications by composing language models, tools, and memory through a unified API that abstracts over multiple model providers.
hf-xet provides chunk-based deduplication and efficient file transfer for the Hugging Face Hub, enabling faster uploads and downloads of large files with local disk caching.
Tokenizers converts raw text into token sequences for NLP models, with support for training custom vocabularies and using pre-built tokenizers (BPE, WordPiece) optimized for speed via Rust.
Transformers provides a unified framework for loading, fine-tuning, and running state-of-the-art pretrained models across text, vision, audio, video, and multimodal tasks using PyTorch, JAX, or TensorFlow.
Install it if you need to run or train any transformer-based model for NLP, vision, audio, or multimodal tasks.
See also corner · gmr · pyts · mace-torch · spark-sklearn · scikit-multilearn · nilearn · pypots · linear-operator · mne