#temporal-graph #graph #temporal #python-packages

raphtory-pymodule

Raphtory 的 Python 包,Raphtory 是一个时序图库

2 个不稳定版本

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

#temporal-graph 中排名 6

GPL-3.0 许可

325KB
3K 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

示例和笔记本

查看我们的交互式 Jupyter Notebook 中的 Raphtory 操作!只需点击下面的徽章即可在线启动 Raphtory 沙盒,无需安装。

Binder

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

入门

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

开发端到端应用程序

类型 描述
笔记本 使用我们强大的时间API,在流行的NFT中查找泵和倒仓诈骗

基准

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

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

赏金板

Raphtory目前正在为贡献提供奖励,例如新功能或算法。贡献者将获得周边产品和奖品!

要开始,请查看我们希望在https://github.com/Raphtory/Raphtory/discussions/categories/bounty-board上实现的所需算法列表,其中包括一些容易实现的小任务(🍇)。

社区

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

  • 关注Slack获取最新的Raphtory新闻和发展

  • 加入我们的Slack与我们聊天并获得您问题的答案!

贡献者

想参与其中?请加入Raphtory的Slack群组,并告诉我们您如何贡献力量!

许可证

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

依赖关系

~33–50MB
~1M SLoC