我正在编写一个接受图形作为输入的函数。
我需要做的第一件事就是确定这个图的阶(即,图中顶点的数量)。
我的意思是,我可以使用 g.summary()
(它返回一个包括顶点数在内的字符串),但那样我就得解析字符串才能得出顶点数,这很麻烦。
为了获得边数,我使用 len(g.get_edgelist())
,这个方法可行。但是没有 g.get_vertexlist()
,所以我不能使用同样的方法来获取顶点数。
一定有一种简单的方法可以做到这一点,而不涉及解析字符串。
g.vcount()
是 igraph 中返回顶点数量的专用函数。类似地,g.ecount()
返回边数,它比 len(g.get_edgelist())
更快,因为它不需要提前构建完整的边列表。
由于igraph
中的一些函数在后来进行了更名,因此我发现这里的答案已经过时了。现在文档建议调用:
gorder(g)
我觉得这对我很有用。关于ecount
的类比是:
gsize(g) # vcount(g) still works, but not g.vcount()
需要注意的是,帮助页面经过巧妙的重定向处理。
这里涉及IT技术相关内容。?vcount
gorder
文档等内容。g.vs
应该返回以 igraph.VertexSeq
对象形式表示的顶点序列:
>>> from igraph import Graph
>>> g = Graph.Formula("A-B")
>>> g.vs["name"]
['A', 'B']
>>> len(g.vs)
2
>>> g.vcount()
2
编辑:如下面的@Tamas所提到的,g.vcount()
也会返回顶点数。为此,示例已进行了编辑。