#时间图 # #时间

raphtory-io

raphtory-io,包含所有Raphtory的连接器和示例数据集

2个不稳定版本

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

#5 in #时间图

每月24次下载
用于 2 个crate(通过 py-raphtory

GPL-3.0 许可证

2MB
52K SLoC


Raphtory

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

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


Raphtory是用Rust编写的内存图工具,具有友好的Python API。它运行速度快,可以在您的笔记本电脑上扩展到数亿条边,并且可以通过简单的pip install raphtory将其添加到现有的管道中。

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

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

运行基本示例

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中查找泵和倒仓骗局

基准测试

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

在此处查看 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文件)。

依赖关系

~25–40MB
~739K SLoC