首页 > 解决方案 > Networkx 获得深度的祖先

问题描述

NetworkX 中是否有任何东西可以结合祖先的功能并提供每个对象的深度?

我想获取NetworkX 中所有祖先的字典,并从源中获取每个祖先的深度。现在该函数返回一个集合,但我想知道每个项目在对象的依赖项中的深度。

我的源是一个具有管道输入和输出的 sql 表,然后我将其转换为有向图。例子:

input   output
b       a
c       a
x       b
y       b
z       b
w       b
l       c
m       c

在运行祖先之后,我拥有了链中的所有内容,但我需要一种方法来也能够说 x 是 3 级或深度 3 对象。

我一直在研究各种功能,例如traversal,但在提供此功能时,我没有任何反应。此时我是否需要创建自己的循环来重新创建具有深度的祖先?

标签: pythonnetworkx

解决方案


我假设您已经完成了预处理,并且有一个图pipe,并且您知道根节点a

single_source_shortest_path_length(path, a)

这将返回节点和路径长度的字典。深度是路径长度加 1。


推荐阅读