phenotypic.analysis.PersistencePairsResult#

class phenotypic.analysis.PersistencePairsResult(birth_values: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]], death_values: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]], lifetimes: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]], birth_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]], death_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]], essential_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]], filtration: Literal['sublevel', 'superlevel'])[source]#

Bases: object

Cubical-persistence intervals and their top-cell representatives.

Each tuple contains exactly two arrays, indexed by homology dimension 0 and 1. Regular pairs retain GUDHI’s source order and essential pairs are appended. Essential intervals use (-1, -1) as their death coordinate.

Parameters:
birth_values#

Birth intensities in the input image’s coordinates.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]]]

death_values#

Death intensities, including signed infinity for essential intervals.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]]]

lifetimes#

Nonnegative persistence lifetimes.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.float64]]]

birth_cells#

Birth top cells as (row, column) coordinates.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]]]

death_cells#

Death top cells, or (-1, -1) for essential intervals.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]]]

essential_cells#

Birth coordinates for essential intervals only.

Type:

tuple[numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]], numpy.ndarray[tuple[Any, …], numpy.dtype[numpy.int64]]]

filtration#

The selected "sublevel" or "superlevel" filtration.

Type:

Literal[‘sublevel’, ‘superlevel’]

Note

The dataclass fields are frozen, but the NumPy arrays remain mutable.

Methods

__init__

Attributes

birth_values: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]]#
death_values: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]]#
lifetimes: tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]]#
birth_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]]#
death_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]]#
essential_cells: tuple[ndarray[tuple[Any, ...], dtype[int64]], ndarray[tuple[Any, ...], dtype[int64]]]#
filtration: Literal['sublevel', 'superlevel']#