【问题标题】:Get all edges linked to a given node in a networkx graph在networkx图中获取链接到给定节点的所有边
【发布时间】:2016-01-09 19:13:54
【问题描述】:

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

我可以这样做:

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

但希望有更好的方法吗?

【问题讨论】:

    标签: python graph-theory networkx


    【解决方案1】:

    您可以在节点上使用方法edges 来生成无向图:

    G.edges(['my_node_name'])
    

    或函数edges

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

    但对于有向图,上述方法只会给出出边;你需要调用并结合in_edges()out_edges()

    【讨论】:

    • 警告 - 如果图形是有向的,这只会给出出边。
    【解决方案2】:

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

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多