如何找到 iGraph 在 python 中创建的图中的顶点数?

How do I find the number of vertices in a graph created by iGraph in python?

我正在编写一个接收图形作为输入的函数。 我需要做的第一件事是确定图的顺序(即图中的顶点数)。

我的意思是,我可以使用 g.summary()(其中 returns 是一个包含顶点数的字符串),但是我会解析该字符串以获得顶点数 - - 这太恶心了。

为了获得我正在使用的边数 len(g.get_edgelist()),这很有效。但是没有g.get_vertexlist(),所以不能用同样的方法

当然有一种不涉及解析字符串的简单方法。

g.vs 应该 return 顶点序列作为 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() 也将 return 顶点数。编辑示例以说明这一点。

g.vcount()是igraph中的一个专用函数,即returns顶点数。同样,g.ecount() returns 边的数量,它比 len(g.get_edgelist()) 快得多,因为它不必提前构建完整的边列表。

由于 igraph 中的一些函数同时被重命名,我发现这里的答案已经过时了。文档现在建议调用

gorder(g)

这对我有用。 ecount 的类比是

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

注意帮助页面被巧妙地重定向是很有用的,所以

?vcount

将您带到 gorder 文档等