在图形工具中,vertices() 和 vertex_properties 的顺序是否相同?

In graph-tool, is ordering of vertices() and vertex_properties the same?

我使用图形工具库创建了一个图形,并使用 vertex_properties 向节点添加了字符串标签。然而,当我阅读图表时,从顶点获取标签成为一个问题,因为我还想要顶点的入度和出度。代码如下:

g = gt.load_graph('saved_graph.graphml')
v_labels = g.vp["my_labels"]

for v in g.vertices():
   print(v)
   print(v.in_degree())

在上面的代码中,v 被打印为从 0 到 N 的整数,其中 N 是总顶点数。基本上我要问的是:如果我正在打印的统计信息,例如 in_degree,我在循环中从 v 获得,将对应于标记节点 v_labels[v]。这就是我们应该如何获取每个节点的字符串标签并将它们与统计信息相关联的方式吗?

我是图形工具的新手,所以非常感谢任何指示或解释。我未能在图形工具文档或示例以及其他任何地方找到正确的解释。

作为后续问题,如果顶点属性和索引对齐,万一我要删除其中一些顶点,这个顺序会怎样?

好久没人回答了,我自己来回答一下,希望各位好奇结果的人能有所启发。

基本上答案是肯定的。图形工具如何索引节点是基于此顺序的,因此那些想要访问特定节点的节点属性并从索引中访问它们的人。

删除原来是一个挑战。当一些节点被删除时,索引需要重新做,否则,它们会改变,节点开始指向不正确的属性。如何做到这一点可以从以下 post 中找到: graph_tool: re-index vertex ids to be consecutive integers