Thanks to visit codestin.com
Credit goes to github.com

Skip to content

outlace/persim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPI version Build Status codecov License: MIT

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

data and diagram

Then from this diagram, we construct the persistence image

from persim import PersImage

pim = PersImage()
img = pim.transform(diagram)
pim.show(img)

pers image of H1 diagram

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.

About

Easy Persistence Images in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%