我认为这可以通过 relabel_nodes 来完成,但是如何创建一个排列节点的映射?我想排列图的节点,同时保持网络结构完整。目前,我正在使用一组打乱的节点重建图表,这似乎不是最有效的处理方式:
import networkx as nx
import random
n=10
nodes=[]
for i in range(0,n):
nodes.append(i)
G=nx.gnp_random_graph(n,.5)
newG=nx.empty_graph(n)
shufflenodes=nodes
random.shuffle(shufflenodes)
for i in range(0,n-1):
for j in range(i+1,n):
if(G.has_edge(i,j)):
newG.add_edge(shufflenodes[i],shufflenodes[j])
Run Code Online (Sandbox Code Playgroud)
有人知道如何加快速度吗?
我很惊讶 networkx 似乎没有内置函数来做到这一点,但也许我错过了一些使用内置算法来做到这一点的聪明方法?