首页 > 解决方案 > 如何更有效地找到节点之间的边?

问题描述

我有一个无向图 G=(V,E) 及其xDataFrame 格式的邻接矩阵和一个NODEV 的节点子集列表。我想找出所有的边 b/w 的节点NODE

我已经尝试了以下代码。就时间复杂度而言,还有其他有效的方法吗?请帮我。

    import networkx as nx
    import random

    G=nx.erdos_renyi_graph(100000,0.4)
    x =nx.to_pandas_adjacency(G)
    NODE=[]
    [NODE.append(random.randint(1,99999)) for i in range(1000)]
    edges=[]
    [edges.append((NODE[i],NODE[j])) for i in range(len(NODE)-1) for j in range(i+1,len(NODE)) if(x.loc[NODE[i],NODE[j]]==1)]


    print(edges)

标签: pythonnetworkxgraph-theorynetwork-analysis

解决方案


如果您希望它作为一个列表,那么一个相当有效(且易于解释)的代码是:

edges = list(G.subgraph(NODE).edges())

推荐阅读