Python implementation persistent images representation of persistence diagrams.
Project description
Persim
Persim is a Python implementation of Persistence Images as first introduced in https://arxiv.org/abs/1507.06217.
It is designed to interface with Ripser, though any persistence diagram should work fine.
Setup
Currently, the only option is to install the library from source:
pip install persim
Usage
First, construct a diagram. In this example, we will use Ripser.
import numpy as np
from ripser import Rips
from sklearn import datasets
data = np.concatenate([150 * np.random.random((300,2)),
10 + 10 * datasets.make_circles(n_samples=100)[0],
100 + 20 * datasets.make_circles(n_samples=100)[0]])
rips = Rips()
dgm = rips.fit_transform(data)
diagram = dgm[1] # Just diagram for H1
Then from this diagram, we construct the persistence image
from persim import PersImage
pim = PersImage()
img = pim.transform(diagram)
pim.show(img)
Batch processing
If PersImage is given a list of diagrams, the dimensions will be the same for all resulting images. This is helpful if you want to process diagrams in batch and require them to be comparable.
diagrams = [rips.fit_transform(obs) for obs in observations]
imgs = pim.transform(diagrams)
References:
Persistence Images were first introduced in Adams et al, 2017. Much of this work, an examples contained herein are inspired by the work of Obayashi and Hiraoka, 2017. Choices of weightings and general methods are often derived from Kusano, Fukumizu, and Yasuaki Hiraoka, 2016.
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.