Skip to main content

Vector Representations of Persistence Diagrams

Project description

diagram2vec

Diagram2vec provides the following finite-dimensional vector representations of the persistence diagrams:

  • persistence statistics (statistics of quanitites such as persistence, midlife, mult.life)
  • Euler characteristic curve
  • k-th Betti number curves
  • persistence curves (curves of quanitites such as persistence, midlife, multitplicative life)
  • entropy curves (curves of entropy of quanitites such as persistence, midlife, multitplicative life)
  • Adcock-Carlsson polynomials (https://arxiv.org/abs/1304.0530)

All representations have ε-robust versions, i.e. not taking into account intervals with persistence below a certain threshold function.

Installation

Dependencies

  • python (>= 3.6)
  • numpy
  • scipy

The latest version of the diagram2vec can be installed with pip:

pip install diagram2vec

Example of usage

import diagram2vec

# list of lists of ndarrays, representing a collection of persistence diagrams
diagrams = [
    [np.array([[0.0, np.inf], [0.0, 0.4], [0.0, 0.5]]), np.array([[0.1, 0.6], [0.2, 0.4]])], 
    [np.array([[0.0, np.inf], [0.0, 0.1]]), np.array([[0.4, 0.7]])],
]

# compute a list of statistics of a distribution of the persistence p := (d - b) quantity
stats = diagram2vec.statistics(diagrams, quantity="persistence", statistics=["min", "mean", "count"])

# compute an Euler characteristic curve (a vector of dimension 10)
euler_curve = diagram2vec.euler_curve(diagrams, m=10)

# compute a Betti number curve, which is default quantity for the `persistence_curve`
# (a vector of dimension 50, intervals with persistence below 0.05 are not used)
betti_curve = diagram2dec.persistence_curve(diagrams, m=50, f="linear", b=0.05)

# compute a curve of persistence quantity
# available quanities: 'betti', 'persistence', 'midlife', 'multlife'
persistence_curve = diagram2vec.persistence_curve(diagrams, quantity="persistence", m=50)

# compute a curve of midlife entropy
# available quanities: 'persistence', 'midlife', 'multlife'
entropy_curve = diagram2vec.entropy_curve(diagrams, quantity="midlife", m=20)

# compute Adcock-Carlsson polynomials
polynomials = diagram2vec.polynomials(diagrams, terms=[["birth", "persistence"], ["dmax", "persistence"]], powers=[[1, 1], [2, 4]])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

diagram2vec-0.0.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file diagram2vec-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: diagram2vec-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.7.2

File hashes

Hashes for diagram2vec-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4edaea15b70daeac1ba8397c23a7f8ef669f1d3bca101754e44bbc7e084d0231
MD5 28967202478632108a41d85a8158f755
BLAKE2b-256 c441a20b398321e2d6e438be92b873aff8581bb418f1dd9ed55ce899ce309485

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page