我有一个networkx
图表对象G
。每个节点都有一个相对于G.nodes()
的索引。我跟踪节点索引,因为我使用邻接矩阵进行一些计算,因为在adjecency矩阵中的每个行索引对应于G.nodes()
中的节点索引。但现在我想在图表中添加新节点,是否会改变旧节点的索引?
我没有删除任何节点。
G = nx.Graph()
#add some nodes to G.
#record the indices of those nodes in a dictionary that maps from a node name to a node index from the list G.nodes()
#add more nodes and edges to G.
#Did the indices of the old nodes change?
答案 0 :(得分:2)
NetworkX将图节点存储在类node
的属性Graph
中。由于node
是字典,因此订单无法保证并且可能会更改。
如果您可以提供有关您尝试实现的更多详情,我们可以为您提供更多帮助。您可以尝试保持从节点到名称的字典映射,或者如果您只需要节点名称,您还可以直接为节点分配名称:
G.add_node('John')
G.add_node('Jane')
您还可以使用节点属性,例如
G.add_node(0, name='John', age=24)
G.add_node(1, name='Jane', age=27)
然后将其视为
G.node[0]
>>> {'name': 'John', 'age': 24}
您还可以将任意对象用作图节点。