#temporal-graph #graph #graph-algorithms #temporal #python-bindings

已删除 py-raphtory

Raphtory 的 Python 绑定,允许使用 Rust 算法与 Python 客户端兼容

2 个不稳定版本

0.4.0 2023 年 6 月 7 日
0.3.2 2023 年 5 月 25 日

#7 in #temporal-graph


用于 raphtory-pymodule

GPL-3.0 许可证

2.5MB
57K SLoC


Raphtory

Test and Build Latest Release Issues Crates.io PyPI Launch Notebook

🌍 网站   📒 文档   Pometry   🧙🏻‍ 教程   🐛 报告错误   加入 Slack


Raphtory 是一个用 Rust 编写的内存图工具,拥有友好的 Python API。它非常快速,可以在您的笔记本电脑上扩展到数亿条边,并且可以通过简单的 pip install raphtory 语句集成到现有的管道中。

它支持时间旅行、多层建模和超越简单查询的高级分析,例如社区演变、动态评分和时间模式挖掘。

如果您想贡献,请查看开放的 问题列表赏金板 或直接在 Slack 上联系我们。成功的贡献将获得奖品!

运行基本示例

from raphtory import Graph
import pandas as pd

# Create a new graph
graph = Graph()

# Add some data to your graph
graph.add_vertex(timestamp=1, id="Alice")
graph.add_vertex(timestamp=1, id="Bob")
graph.add_vertex(timestamp=1, id="Charlie")
graph.add_edge  (timestamp=2, src="Bob",   dst="Charlie", properties={"weight":5.0})
graph.add_edge  (timestamp=3, src="Alice", dst="Bob",     properties={"weight":10.0})
graph.add_edge  (timestamp=3, src="Bob",   dst="Charlie", properties={"weight":-15.0})

# Check the number of unique nodes/edges in the graph and earliest/latest time seen.
print(graph)

results = [["earliest_time", "name", "out_degree", "in_degree"]]

# Collect some simple vertex metrics Ran across the history of your graph with a rolling window
for graph_view in graph.rolling(window=1):
    for v in graph_view.vertices():
        results.append([graph_view.earliest_time(), v.name(), v.out_degree(), v.in_degree()])

# Print the results
print(pd.DataFrame(results[1:], columns=results[0]))

# Grab an edge, explore the history of its 'weight' 
cb_edge = graph.edge("Bob","Charlie")
weight_history = cb_edge.property_history("weight")
print("The edge between Bob and Charlie has the following weight history:", weight_history)

# Compare this weight between time 2 and time 3
weight_change = cb_edge.at(2)["weight"] - cb_edge.at(3)["weight"]
print("The weight of the edge between Bob and Charlie has changed by",weight_change,"pts")
Graph(number_of_edges=2, number_of_vertices=3, earliest_time=1, latest_time=3)

|   | earliest_time | name    | out_degree | in_degree |
|---|---------------|---------|------------|-----------|
| 0 | 1             | Alice   | 0          | 0         |
| 1 | 1             | Bob     | 0          | 0         |
| 2 | 1             | Charlie | 0          | 0         |
| 3 | 2             | Bob     | 1          | 0         |
| 4 | 2             | Charlie | 0          | 1         |
| 5 | 3             | Alice   | 1          | 0         |
| 6 | 3             | Bob     | 1          | 1         |
| 7 | 3             | Charlie | 0          | 1         |

The edge between Bob and Charlie has the following weight history: [(2, 5.0), (3, -15.0)]

The weight of the edge between Bob and Charlie has changed by 20.0 pts

安装 Raphtory

Raphtory 自 0.3.0 版本起可用于 Python 和 Rust。您应该有 Python 3.10 或更高版本,并建议使用 conda、virtualenv 或 pyenv。

pip install raphtory

示例和笔记本

查看Raphtory在互动Jupyter Notebook中的实际应用!只需点击下面的徽章即可在线启动Raphtory沙盒,无需安装。

Binder

想在您的笔记本电脑上尝试Raphtory吗?您可以查看最新文档可用算法的完整列表,或查看下面的基于笔记本的教程!

入门指南

类型 描述
教程 构建您的第一个图

开发端到端应用程序

类型 描述
笔记本 使用我们强大的时间API在流行的NFT中查找泵和.dump骗局

基准测试

我们托管一个页面,每当推送master分支时,都会触发并保存两个基准测试的结果。

在此查看https://pometry.github.io/Raphtory/dev/bench/

赏金板

Raphtory目前提供对新功能或算法等贡献的奖励。贡献者将获得周边产品和奖品!

要开始,请查看我们的所需算法列表,其中包括一些容易实现的低垂之果(🍇)。

社区

加入使用Raphtory推动他们的图分析项目的开源爱好者不断增长的社区!

  • 关注Slack获取最新的Raphtory新闻和开发信息

  • 加入我们的Slack与我们交谈并回答您的问题!

贡献者

想加入我们吗?请加入Raphtory Slack群组,并与我们讨论您如何贡献力量!

许可证

Raphtory根据GNU通用公共许可证v3.0许可(请参阅我们的LICENSE文件)。

依赖关系

~30–43MB
~811K SLoC