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

时间:2015-10-12 10:29:50

标签: python graph-theory networkx

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

我可以这样做:

edlist=[]
for ed in G.edges():
     if 'my_node_name' in ed:
            edlist.append(ed)

但是期待可能有更好的方法吗?

2 个答案:

答案 0 :(得分:26)

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

G.edges(node)

networkx 2.x 中,这是一个EdgeDataView对象。在 networkx 1.x 中,这是一个列表 - 如果您想要1.x中的生成器而不是获取整个列表,G.edges_iter(node)可以工作(2.x中不再存在)。

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

G.in_edges(node)
G.out_edges(node) 

这些是2.x中的观点。在1.x中,这些是列表,并且有生成器选项:G.in_edges_iter(node)G.out_edges_iter(node)

答案 1 :(得分:9)

您可以使用方法edges

G.edges(['my_node_name'])

或函数edges

networkx.edges(G, ['my_node_name'])