在NetworkX中,最有效的移动/重命名节点的方法是什么?

2024-04-26 07:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为Python使用NetworkX图形库。在我的程序中,我想把我的nodeid“合并”成一系列的数字。这是我天真的做法:

start = 1 # could be anything
for i, n in enumerate(g.nodes()):
    if i+start == n:
        continue
    g.add_node(i+start, attr_dict=g.node[n])
    g.add_edges_from([(i+start, v, g[n][v]) for v in g.neighbors(n)])
    g.remove_node(n)

有没有比邻里抄得更快的?例如,我尝试了g[i+start] = g[n],但这是禁止的。在

谢谢!在


Tags: in程序networkxaddnodefor数字be
2条回答

如果您的兴趣仍然相关,有一个^{},它需要一个映射字典。在

这样行吗?在

http://networkx.github.io/documentation/latest/reference/generated/networkx.relabel.convert_node_labels_to_integers.html

import networkx as nx
G = nx.Graph()
G.add_node(1)
G.add_nodes_from('spam')
print G.nodes()

退货:

^{pr2}$

现在:

start = 1
G = nx.convert_node_labels_to_integers(G,first_label=start)
print G.nodes()

退货:

[1, 2, 3, 4, 5]

相关问题 更多 >