att.topology

Persistent homology computation and topological summaries.

class att.topology.PersistenceAnalyzer(max_dim=2, backend='ripser', use_witness=False, n_landmarks=500)[source]

Bases: object

Compute persistent homology on point clouds.

Parameters:
  • max_dim (int) – Max homology dimension (0=components, 1=loops, 2=voids).

  • backend (str) – “ripser” (fast for H0+H1) or “gudhi” (H2+, alpha complexes).

  • use_witness (bool) – Use witness complex for large point clouds (n > 2000).

  • n_landmarks (int) – Number of landmarks for witness complex.

fit_transform(cloud, subsample=None, seed=None)[source]

Compute persistence diagrams and derived representations.

Parameters:
  • cloud ((n_points, dimension) point cloud)

  • subsample (if int, randomly select this many points first)

  • seed (random seed for subsampling)

Returns:

  • dict with diagrams, betti_curves, persistence_entropy,

  • bottleneck_norms, persistence_images, persistence_landscapes

Return type:

dict

distance(other, metric='bottleneck')[source]

Compute distance between persistence diagrams.

Parameters:
  • other (another PersistenceAnalyzer with computed diagrams)

  • metric ("bottleneck", "wasserstein_1", "wasserstein_2")

Returns:

float

Return type:

maximum distance across all dimensions

to_image(resolution=50, sigma=0.1, birth_range=None, persistence_range=None)[source]

Convert diagrams to persistence images.

Parameters:
  • resolution (int) – Grid size for the persistence image (resolution x resolution).

  • sigma (float) – Gaussian kernel bandwidth.

  • birth_range ((min, max) or None) – Explicit birth-axis range. If None, computed from data per diagram.

  • persistence_range ((min, max) or None) – Explicit persistence-axis range. If None, computed from data per diagram.

Return type:

list of (resolution, resolution) arrays, one per homology dimension.

to_landscape(n_layers=5, n_grid=100)[source]

Convert diagrams to persistence landscapes.

Returns one (n_layers, n_grid) array per homology dimension.

Parameters:
Return type:

list[ndarray]

plot(kind='diagram')[source]

Plot persistence results.

kind: ‘diagram’, ‘barcode’, ‘betti_curve’, ‘landscape’, ‘image’

Parameters:

kind (str)

class att.topology.PersistenceAnalyzer(max_dim=2, backend='ripser', use_witness=False, n_landmarks=500)[source]

Bases: object

Compute persistent homology on point clouds.

Parameters:
  • max_dim (int) – Max homology dimension (0=components, 1=loops, 2=voids).

  • backend (str) – “ripser” (fast for H0+H1) or “gudhi” (H2+, alpha complexes).

  • use_witness (bool) – Use witness complex for large point clouds (n > 2000).

  • n_landmarks (int) – Number of landmarks for witness complex.

__init__(max_dim=2, backend='ripser', use_witness=False, n_landmarks=500)[source]
Parameters:
  • max_dim (int)

  • backend (str)

  • use_witness (bool)

  • n_landmarks (int)

fit_transform(cloud, subsample=None, seed=None)[source]

Compute persistence diagrams and derived representations.

Parameters:
  • cloud ((n_points, dimension) point cloud)

  • subsample (if int, randomly select this many points first)

  • seed (random seed for subsampling)

Returns:

  • dict with diagrams, betti_curves, persistence_entropy,

  • bottleneck_norms, persistence_images, persistence_landscapes

Return type:

dict

distance(other, metric='bottleneck')[source]

Compute distance between persistence diagrams.

Parameters:
  • other (another PersistenceAnalyzer with computed diagrams)

  • metric ("bottleneck", "wasserstein_1", "wasserstein_2")

Returns:

float

Return type:

maximum distance across all dimensions

to_image(resolution=50, sigma=0.1, birth_range=None, persistence_range=None)[source]

Convert diagrams to persistence images.

Parameters:
  • resolution (int) – Grid size for the persistence image (resolution x resolution).

  • sigma (float) – Gaussian kernel bandwidth.

  • birth_range ((min, max) or None) – Explicit birth-axis range. If None, computed from data per diagram.

  • persistence_range ((min, max) or None) – Explicit persistence-axis range. If None, computed from data per diagram.

Return type:

list of (resolution, resolution) arrays, one per homology dimension.

to_landscape(n_layers=5, n_grid=100)[source]

Convert diagrams to persistence landscapes.

Returns one (n_layers, n_grid) array per homology dimension.

Parameters:
Return type:

list[ndarray]

plot(kind='diagram')[source]

Plot persistence results.

kind: ‘diagram’, ‘barcode’, ‘betti_curve’, ‘landscape’, ‘image’

Parameters:

kind (str)