gpt4 book ai didi

python - NetworkX中节点的上行和下行

转载 作者:行者123 更新时间:2023-12-02 19:41:41 32 4
gpt4 key购买 nike

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

enter image description here

最佳答案

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

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

示例:

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]

但是如果我误解了,那么您需要澄清上游/下游的含义,因为您显示的图表看起来是无向的。

关于python - NetworkX中节点的上行和下行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59993941/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com