我有很多像这样的子图:
import networkx as nx
G = nx.DiGraph()
G.add_edges_from([(2,1),(3,1),(1,4)])
nx.draw(G)
Run Code Online (Sandbox Code Playgroud)
我想找到所有的起始节点和结束节点。所以我用:
startnodes = [x for x in G.nodes() if G.out_degree(x)==1 and G.in_degree(x)==0]
endnode = [x for x in G.nodes() if G.out_degree(x)==0 and G.in_degree(x)==1][0]
print(startnodes, endnode)
[2, 3] 4
Run Code Online (Sandbox Code Playgroud)
但有些子图如下所示,末端节点的度数为 2。我怎样才能找到它的结束节点?
G.add_edges_from([(2,1),(3,1)]
Run Code Online (Sandbox Code Playgroud)
每一项都只有一个考虑因素:
就这样。如果您还需要识别子图,则只需从每个起始节点执行任何标准闭包操作即可。如果这些子图具有公共节点,则合并子图。
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |