Skip to main content

Python 的精益持久同源库

项目描述

DOI PyPI 版本 下载 康达版 康达下载

构建状态 构建状态 编解码器 执照:麻省理工学院

撕裂者.py

Ripser.py 是 Python 的精益持久同源包。Ripser.py 以超快的 C++ Ripser 包为核心计算引擎,提供了一个直观的界面

  • 计算稀疏和密集数据集的持久性上同调,
  • 可视化持久性图,
  • 计算图像的lowerstar过滤,以及
  • 计算有代表性的 cochains。

此外,通过广泛的测试和持续集成,Ripser.py 易于安装在 Mac、Linux 和 Windows 平台上。

为了帮助您使用该软件包,我们整理了一大套笔记本,展示了许多可用的功能。有关该软件包的完整文档可以在ripser.scikit-tda.org找到。

相关项目

如果您正在寻找原始的 C++ 库,您可以在Ripser/ripser找到它。

如果您正在寻找 Ripser 的 GPU 加速版本,您可以在Ripser++上找到它

设置

Ripser.py 在所有主要平台上都可用。您只需安装标准的 Python 数值计算库和 Cython。

依赖项:

  • 赛通
  • 麻木的
  • scipy
  • scikit-学习
  • 柿子

Windows 用户:如果您使用的是 Windows 机器,您还需要在系统上安装MinGW

Mac 用户:更新您的 Xcode 和 Xcode 命令行工具可能会解决您在安装时遇到的任何问题。

Cython 应该是安装前唯一需要的库。要安装,请在您的环境中键入以下命令:

pip install cython
pip install ripser

如果您在安装时遇到问题,请告诉我们!

可选依赖

从源代码编译的 Ripser.py 可以通过将 STL 中的标准替换为可用的最快实现之一来获得类固醇1 : robin_hood。使用该实现对 Ripser.py 的基准测试显示速度提升高达30%unordered_maprobin_hood

为了能够使用robin_hood而不是 STL,您只需要克隆包含实现的存储库:

# Run this command at the root of the project
git clone https://github.com/martinus/robin-hood-hashing ripser/robinhood

1 Python 包已经robin_hood默认编译。

用法

界面非常简单:

import numpy as np
from ripser import ripser
from persim import plot_diagrams

data = np.random.random((100,2))
diagrams = ripser(data)['dgms']
plot_diagrams(diagrams, show=True)

如果您更愿意使用它,我们还提供了一个 Scikit-learn 转换器样式对象:

import numpy as np
from ripser import Rips

rips = Rips()
data = np.random.random((100,2))
diagrams = rips.fit_transform(data)
rips.plot(diagrams)
Ripser.py 输出持久化图

贡献

欢迎各种投稿!如果您想提供帮助,请与我们联系。从代码到笔记本再到示例和文档的所有内容都同样有价值,所以请不要觉得自己不能做出贡献。要做出贡献,请 fork 项目进行更改并提交拉取请求。我们将尽最大努力与您一起解决任何问题,并将您的代码合并到主分支中。

如果您发现错误、有疑问或只是在使用库时遇到问题,请在我们的问题跟踪器中打开问题,我们将尝试帮助解决问题。

执照

Ripser.py 在 MIT 许可下可用!核心 C++ 代码源自 Ripser,它也可在 MIT 许可下使用,版权归 Ulrich Bauer 所有。修改、Python 代码和文档的版权归 Christopher Tralie 和 Nathaniel Saul 所有。

引用

如果您使用此软件包,请在此处找到 JoSS 论文DOI和在此处找到关于 Ripser 的 JACT 论文DOI:10.1007/s41468-021-00071-5

您可以使用以下 bibtex 条目:

@article{ctralie2018ripser,
  doi = {10.21105/joss.00925},
  url = {https://doi.org/10.21105/joss.00925},
  year  = {2018},
  month = {Sep},
  publisher = {The Open Journal},
  volume = {3},
  number = {29},
  pages = {925},
  author = {Christopher Tralie and Nathaniel Saul and Rann Bar-On},
  title = {{Ripser.py}: A Lean Persistent Homology Library for Python},
  journal = {The Journal of Open Source Software}
}

@article{Bauer2021Ripser,
    AUTHOR = {Bauer, Ulrich},
     TITLE = {Ripser: efficient computation of {V}ietoris-{R}ips persistence
              barcodes},
   JOURNAL = {J. Appl. Comput. Topol.},
  FJOURNAL = {Journal of Applied and Computational Topology},
    VOLUME = {5},
      YEAR = {2021},
    NUMBER = {3},
     PAGES = {391--423},
      ISSN = {2367-1726},
   MRCLASS = {55N31 (55-04)},
  MRNUMBER = {4298669},
       DOI = {10.1007/s41468-021-00071-5},
       URL = {https://doi.org/10.1007/s41468-021-00071-5},
}

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ripser-0.6.4.tar.gz (74.6 kB 查看哈希)

已上传 source

内置发行版

ripser-0.6.4-py3.9-win-amd64.egg (79.9 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-py3.9-win32.egg (73.1 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-py3.9-linux-x86_64.egg (682.6 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-py3.8-win-amd64.egg (79.3 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-py3.8-win32.egg (73.3 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-py3.8-linux-x86_64.egg (684.3 kB 查看哈希

已上传 0 6 4

ripser-0.6.4-cp39-cp39-win_amd64.whl (71.1 kB 查看哈希

已上传 cp39

ripser-0.6.4-cp39-cp39-win32.whl (64.4 kB 查看哈希

已上传 cp39

ripser-0.6.4-cp38-cp38-win_amd64.whl (70.5 kB 查看哈希

已上传 cp38

ripser-0.6.4-cp38-cp38-win32.whl (64.5 kB 查看哈希

已上传 cp38