获取链接到networkx图中给定节点的所有边

ato*_*3ls 23 python graph-theory networkx

只是想知道是否有方便的networkx函数返回连接到图中的给定节点(或节点)(例如my_node_name)的边的列表(例如G).

我可以这样做:

edlist=[]
for ed in G.edges():
     if 'my_node_name' in ed:
            edlist.append(ed)
Run Code Online (Sandbox Code Playgroud)

但期望可能有更好的方法?

Joe*_*oel 31

如果图表是无向的,您可以使用

G.edges(node)
Run Code Online (Sandbox Code Playgroud)

如果你想使用生成器而不是获取整个列表,那么EdgeDataView可行.(编辑:在networkx 2.0中G.edges_iter(node)已被删除,G.in_edges_iter(node)现在是一个G.out_edges_iter(node)对象)

如果指向图形,则上面的命令不会给出边缘.使用

G.in_edges(node)
G.out_edges(node) 
Run Code Online (Sandbox Code Playgroud)

这些也有生成器选项:EdgeDataViewG.edges_iter(node)(在2.0中类似编辑这些不再存在,G.in_edges_iter(node)并且G.out_edges_iter(node)是视图)


don*_*mus 10

您可以使用该方法 edges

G.edges(['my_node_name'])
Run Code Online (Sandbox Code Playgroud)

或功能 edges

networkx.edges(G, ['my_node_name'])
Run Code Online (Sandbox Code Playgroud)

  • 警告 - 如果图表是定向的,这只会给出边缘. (7认同)