如何在Python的iGraph中找到一个图中顶点的数量?

13

我正在编写一个接受图形作为输入的函数。

我需要做的第一件事就是确定这个图的阶(即,图中顶点的数量)。

我的意思是,我可以使用 g.summary()(它返回一个包括顶点数在内的字符串),但那样我就得解析字符串才能得出顶点数,这很麻烦。

为了获得边数,我使用 len(g.get_edgelist()),这个方法可行。但是没有 g.get_vertexlist(),所以我不能使用同样的方法来获取顶点数。

一定有一种简单的方法可以做到这一点,而不涉及解析字符串。

3个回答

27

g.vcount() 是 igraph 中返回顶点数量的专用函数。类似地,g.ecount() 返回边数,它比 len(g.get_edgelist()) 更快,因为它不需要提前构建完整的边列表。


7

由于igraph中的一些函数在后来进行了更名,因此我发现这里的答案已经过时了。现在文档建议调用:

gorder(g)

我觉得这对我很有用。关于ecount的类比是:

gsize(g)   # vcount(g) still works, but not g.vcount()

需要注意的是,帮助页面经过巧妙的重定向处理。

这里涉及IT技术相关内容。
?vcount

将带您前往 gorder 文档等内容。

2

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()也会返回顶点数。为此,示例已进行了编辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接