python的精益持久同源库

ripser的Python项目详细描述


DOIPyPI versionDownloadsBuild StatusBuild statuscodecovLicense: MIT

较厚的py

py是python的一个精益持久同源包。以闪亮的C++ River软件包为核心计算引擎,Ripser.py为

提供了直观的界面
  • 计算稀疏和稠密数据集的持久上同调,
  • 可视化持久性图表,
  • 计算图像上的lowerstar过滤,以及
  • 计算代表Cochains。

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

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

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

设置

ripser.py可用于所有主要平台。所需的只是安装标准的python数值计算库和cython。

依赖关系:

  • 赛顿
  • 努比
  • scipy
  • SCIKIT学习
  • 波斯

windows用户:如果使用的是windows计算机,则还需要在系统上安装MinGW

mac用户:更新xcode和xcode命令行工具可能会解决安装中的任何问题。

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

pip install cython
pip install ripser

如果您安装有问题,请告诉我们!

用法

界面非常简单:

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 transformer样式的对象:

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 output persistence diagram

贡献

我们欢迎各种各样的贡献!如果你想帮忙,请联系。从代码到笔记本,再到示例和文档,所有的东西都同样有价值,所以请不要觉得自己无法贡献。若要参与,请分叉项目进行更改并提交拉取请求。我们将尽最大努力解决与您有关的任何问题,并将您的代码合并到主分支中。

如果您发现一个bug,有问题,或者只是在库中遇到问题,请在我们的issue tracker中打开一个问题,我们将尽力帮助解决问题。

许可证

ripser.py有麻省理工学院的许可证!核心C++代码是从RiSpER派生的,它也可以在MIT许可证和Ulrich Bauer的版权下使用。这些修改、python代码和文档是christopher tralie和nathaniel saul的版权。

引用

如果您使用此软件包,请在此处找到joss文件:DOI

您可以使用以下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}
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java区块链表示   如何识别此Java框架中使用的加密技术?   java从outter jar加载一个包含所有组件的类   java如何在netty中序列化和反序列化HttpMessage或HttpContent?   java Hibernate在一定量的插入后生成负id   文件在FTP服务器上复制,而不是在java中移动   java如何在Android应用程序中使用静态对话框片段方法?   java扫描器while循环   java如何比较drools中数组列表的泛型元素?   java构建Restful服务失败CDI部署失败   java我的播放机将子弹射出90度   在Android设备中使用WiFi direct进行java数据传输   java在命令设计模式中将上下文传递给execute方法   java KeyClope TomcatAdapter:是否有“KeyClope”的替代路径。json'?   java如何将数据库中的名称放入我在另一个类中创建的JLIst中?   java Spring Mvc和MediaType for在获取rest请求的@RequestMapping中使用   java如何在应用程序运行时从包中打开文本文件?   java以Spring形式为单个对象定义POJO id   java清除gridview中的所有选定项