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
Release history Release notifications | RSS feed
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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4edaea15b70daeac1ba8397c23a7f8ef669f1d3bca101754e44bbc7e084d0231 |
|
MD5 | 28967202478632108a41d85a8158f755 |
|
BLAKE2b-256 | c441a20b398321e2d6e438be92b873aff8581bb418f1dd9ed55ce899ce309485 |