首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetworkX中节点的UpStream和DownStream

NetworkX中节点的UpStream和DownStream
EN

Stack Overflow用户
提问于 2020-01-31 04:23:05
回答 1查看 1.1K关注 0票数 2

我是使用Python的Networkx的新手。我正在尝试选择一个节点,并获取该节点上游和下游的所有节点。例如,在下图中,对于上游节点2,我希望返回节点1、6和7。对于下游节点2,我希望返回3、4、8、9和5。输出节点的顺序并不重要。有没有一种快速的方法将它们作为列表返回?

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 05:44:40

我假设上游/下游,这是一个有向图,你指的是传入/传出的边及其父/子?您可以使用广度优先树搜索(bfs_tree)。

请参阅:https://networkx.github.io/documentation/stable/reference/algorithms/traversal.html

示例:

代码语言:javascript
复制
g = nx.DiGraph()
g.add_edges_from([
    (7,6), 
    (6,2), 
    (6,1), 
    (1,2), 
    (2,4), 
    (2,3), 
    (3,4), 
    (4,8), 
    (4,9),
    (3,5)
])

upstream = [n for n in nx.traversal.bfs_tree(g, 2, reverse=True) if n != 2]
downstream = [n for n in nx.traversal.bfs_tree(g, 2) if n != 2]

但如果我误解了,那么您需要澄清您所说的上游/下游是什么意思,因为您显示的图看起来是无方向的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59993941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档