获取链接到 networkx 图中给定节点的所有边
Get all edges linked to a given node in a networkx graph
只是想知道是否有方便的 networkx 函数 returns 连接到图中给定节点(或多个节点)(例如 my_node_name
)的边列表(例如 G
).
我可以这样做:
edlist=[]
for ed in G.edges():
if 'my_node_name' in ed:
edlist.append(ed)
但希望有更好的方法吗?
您可以在节点上使用方法 edges
获得 无向 图:
G.edges(['my_node_name'])
或函数edges
networkx.edges(G, ['my_node_name'])
但对于有向图,上述方法只会给出出边;在那里你需要调用和组合 in_edges()
and out_edges()
.
如果图是无向的,可以用
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)
只是想知道是否有方便的 networkx 函数 returns 连接到图中给定节点(或多个节点)(例如 my_node_name
)的边列表(例如 G
).
我可以这样做:
edlist=[]
for ed in G.edges():
if 'my_node_name' in ed:
edlist.append(ed)
但希望有更好的方法吗?
您可以在节点上使用方法 edges
获得 无向 图:
G.edges(['my_node_name'])
或函数edges
networkx.edges(G, ['my_node_name'])
但对于有向图,上述方法只会给出出边;在那里你需要调用和组合 in_edges()
and out_edges()
.
如果图是无向的,可以用
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)