如何找到 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
文档等
我正在编写一个接收图形作为输入的函数。 我需要做的第一件事是确定图的顺序(即图中的顶点数)。
我的意思是,我可以使用 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
文档等