簡體   English   中英

如何更有效地找到節點之間的邊?

[英]How to find edges between nodes more efficiently?

我有一個無向圖 G=(V,E) 及其 DataFrame 格式的鄰接矩陣x和 V 的節點NODE子集的列表。我想找出所有邊 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)

如果您希望它作為一個列表,那么一個相當有效(且易於解釋)的代碼是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM