Geomstats is an open-source Python package for computations and statistics on manifolds. The package is organized into two main modules:
geometry implements concepts in differential geometry, and the module
learning implements statistics and learning algorithms for data on manifolds.
- To get an overview of
geomstats, see our introductory video.
- To get started with
geomstats, see the examples and notebooks directories.
- The documentation of
geomstatscan be found on the documentation website.
- If you find
geomstatsuseful, please kindly cite our paper.
- To follow the scientific literature on geometric statistics, follow our twitter-bot @geomstats-papers !
Install geomstats via pip3
From a terminal (OS X & Linux), you can install geomstats and its requirements with
pip3 as follows:
pip3 install geomstats
This method installs the latest version of geomstats that is uploaded on PyPi. Note that geomstats is only available with Python3.
Install geomstats via Git
From a terminal (OS X & Linux), you can install geomstats and its requirements via
git as follows:
git clone https://github.com/geomstats/geomstats.git pip3 install -r requirements.txt
This method installs the latest GitHub version of geomstats. Developers should install this version, together with the development requirements and the optional requirements to enable
pip3 install -r dev-requirements.txt -r opt-requirements.txt
Choose the backend
Geomstats can run seemlessly with
pytorch. Note that
tensorflow requirements are optional, as geomstats can be used with
numpy only. By default, the
numpy backend is used. The visualizations are only available with this backend.
To get the
pytorch versions compatible with geomstats, install the optional requirements:
pip3 install -r opt-requirements.txt
You can choose your backend by setting the environment variable
pytorch, and importing the
backend module. From the command line:
and in the Python3 code:
import geomstats.backend as gs
geomstats for learning
algorithms on Riemannian manifolds, you need to follow three steps:
- instantiate the manifold of interest,
- instantiate the learning algorithm of interest,
- run the algorithm.
The data should be represented by a
gs.array. This structure represents numpy arrays, or tensorflow/pytorch tensors, depending on the choice of backend.
The following code snippet shows the use of tangent Principal Component Analysis on simulated
data on the
space of 3D rotations.
from geomstats.geometry.special_orthogonal import SpecialOrthogonal from geomstats.learning.pca import TangentPCA so3 = SpecialOrthogonal(n=3, point_type='vector') metric = so3.bi_invariant_metric data = so3.random_uniform(n_samples=10) tpca = TangentPCA(metric=metric, n_components=2) tpca = tpca.fit(data) tangent_projected_data = tpca.transform(data)
All geometric computations are performed behind the scenes. The user only needs a high-level understanding of Riemannian geometry. Each algorithm can be used with any of the manifolds and metric implemented in the package.
See our contributing guidelines!
This work is supported by:
- the Inria-Stanford associated team GeomStats,
- the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement G-Statistics No. 786854),
- the French society for applied and industrial mathematics (SMAI),
- the National Science Foundation (grant NSF DMS RTG 1501767).