Ripser.py是一个面向Python的精简持久同源包。基于速度极快的C++Ripser包作为核心计算引擎,Ripser.py为
计算稀疏和稠密数据集的持久性上同调,
可视化持久性图,
计算图像的低阶滤波,以及
计算代表公司。
我们提供了一大套交互式笔记本电脑,演示如何利用所有可用功能。
py是对原始C++Ripser项目的改进。我们投入了大量工作,使该包可用于所有主要平台上的Python开发人员。如果您在安装时遇到问题,请通过打开github问题让我们知道。
您可以在github上找到源代码,网址为Scikit-TDA/Ripser.py公司。有关原始C++库,请参见裂土器/裂土器.
安装程序
Pypi上提供了Ripser.py。要安装,您首先需要Cython。
pip(点阵) 安装 赛马拉松
pip(点阵) 安装 裂土器
示例用法
界面非常简单:
进口 笨蛋 作为 净现值
从 撕裂器 进口 撕裂器
从 波斯 进口 绘图
数据 = 净现值.随机的.随机的((100,2))
图表 = 撕裂器(数据)[“dgms”]
绘图(图表, 显示=真的)
如果您愿意使用,我们还提供Scikit-learn转换器样式的对象:
进口 笨蛋 作为 净现值
从 撕裂器 进口 撕裂
撕裂 = 撕裂()
数据 = 净现值.随机的.随机的((100,2))
图表 = 撕裂.fit_transform(适合转换)(数据)
撕裂.情节(图表)
源代码编译
为了编译,您首先需要执行以下操作:
吉特 克隆 https://github.com/scikit-tda/ripser.py网站光盘 成熟.pypip(点阵) 安装 -e(电子) .
然后,您将能够像前面的示例一样使用Ripser.py,但它是直接从源代码编译的。为了在从源代码编译时获得最佳性能体验,您需要一个额外的库robin_hood_hashmap。要在启用此库的情况下使用编译,请执行以下操作:
吉特 克隆 https://github.com/martinus/robin-hood-hashing网站 撕裂者/罗宾汉
下表显示了使用和不使用robin_hood_hashmap的性能比较:
数据集 |
大小 |
门槛 |
昏暗的 |
系数 |
正常[秒] |
罗宾汉[斯] |
球体3 |
192 |
|
2 |
2 |
1.5 |
1.2 |
龙 |
2000 |
|
1 |
2 |
2.9 |
2.5 |
臭氧 |
1024 |
1.8 |
三 |
2 |
2.9 |
2.2 |
随机16 |
50 |
|
7 |
2 |
8.4 |
6 |
分形 |
512 |
|
2 |
2 |
17.7 |
14 |
臭氧 |
4096 |
1.4 |
三 |
2 |
68.6 |
53.4 |
贡献
我们欢迎各种形状和大小的贡献。有很多潜在项目的机会,所以如果你想帮忙,请联系。从你最喜欢的距离的实现、笔记本、示例和文档,所有的东西都同样有价值,所以请不要觉得你不能做出贡献。
要做出贡献,请分叉项目进行更改并提交请求。我们将尽力解决与您之间的任何问题,并将您的代码合并到主分支中。
引用
如果您使用此软件包,请在此处找到JoSS论文:
您可以使用以下bibtex条目
@文章{ctralie2018ripser公司,
国防部 = {10.21105/乔斯.00925},
网址 = {https(https)://国防部.组织/10.21105/乔斯.00925},
年 = {2018},
月 = {九月},
出版商 = {这个 正常开放 日记账},
体积 = {三},
数 = {29},
页 = {925},
作者 = {克里斯托弗 特拉利 和 纳撒尼尔 索尔 和 Rann公司 酒吧-打开},
标题 = {{裂土器.第页}: A类 精益 持久 同源性 图书馆 对于 蟒蛇},
杂志 = {这个 日记账 属于 正常开放 来源 软件}
}
许可证
Ripser.py在麻省理工学院许可证下可用!核心C++代码源于Ripser,它也可以通过麻省理工学院的许可证获得,并且版权归Ulrich Baeur所有。这些修改、Python代码和文档的版权归Christopher Tralie和Nathaniel Saul所有。