Welcome to giotto’s API reference!

giotto.homology: Persistent homology

The module giotto.homology implements transformers to modify metric spaces or generate persistence diagrams.

homology.VietorisRipsPersistence([metric, …])

Persistence diagrams resulting from Vietoris-Rips filtrations.

homology.ConsistentRescaling([metric, …])

Rescaling of distances between pairs of points by the geometric mean of the distances to the respective \(k\)-th nearest neighbours.

giotto.diagrams: Persistence diagrams

The module giotto.diagrams implements transformers to preprocess persistence diagrams or extract features from them.


Replaces all homology dimensions in persistence diagrams with numpy.inf.

diagrams.Scaler([metric, metric_params, …])

Linear scaling of persistence diagrams.

diagrams.Filtering([homology_dimensions, …])

Filtering of persistence diagrams.

diagrams.PairwiseDistance([metric, …])

Distances between pairs of persistence diagrams, constructed from the distances between their respective subdiagrams with constant homology dimension.

diagrams.Amplitude([metric, metric_params, …])

Amplitudes of persistence diagrams, constructed from the amplitudes of their subdiagrams with constant homology dimension.


Persistence entropies of persistence diagrams.

diagrams.PersistenceLandscape([n_layers, …])

Persistence landscapes of persistence diagrams.

diagrams.BettiCurve([n_values, n_jobs])

Betti curves of persistence diagrams.

diagrams.HeatKernel(sigma[, n_values, n_jobs])

Convolution of persistence diagrams with a Gaussian kernel.

giotto.time_series: Time series

The module giotto.time_series implements transformers to preprocess time series or embed them in a higher dimensional space for persistent homology.


Time series resampling at regular intervals.


Methods for stationarizing time series data.


Representation of a univariate time series as a time series of point clouds.

time_series.SlidingWindow([width, stride])

Sliding windows onto the data.


Entropies from sets of permutations arg-sorting rows in arrays.


Pearson dissimilarities from collections of multivariate time series.

time_series.Labeller([width, func, …])

Target creation from sliding windows over a time series.

giotto.graphs: Graphs

The module giotto.graphs implements transformers to create graphs or extract metric spaces from graphs.

graphs.TransitionGraph([func, func_params, …])

Undirected transition graphs from arrays of time-evolving states.

graphs.KNeighborsGraph([n_neighbors, …])

Adjacency matrices of k-nearest neighbor graphs.


Distance matrices arising from geodesic distances on graphs.

giotto.base: Base

Implements a TransformerResamplerMixin for transformers that have a resample method.


Mixin class for all transformers-resamplers in giotto-learn.

giotto.pipeline: Pipeline

The module giotto.pipeline extends scikit-learn’s module by defining Pipelines that include TransformerResamplers.

pipeline.Pipeline(steps[, memory, verbose])

Pipeline of transforms and resamples with a final estimator.

pipeline.make_pipeline(\*steps, \*\*kwargs)

Construct a Pipeline from the given estimators.

giotto.meta_transformers: Convenience pipelines

The module giotto.meta_transformers implements convenience giotto.pipeline.Pipeline transformers for direct topological feature generation.

meta_transformers.EntropyGenerator([metric, …])

Persistence entropies directly from point clouds.


Meta transformer returning Betti curves directly from point clouds.


Meta transformer returning persistence landscapes directly from point clouds.

giotto.utils: Validation

The module giotto.utils implements hyperparameter and input validation functions.


Input validation on a diagram

utils.validate_params(parameters, references)

utils.validate_metric_params(metric, …)