繁体   English   中英

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

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

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

我的意思是,我可以使用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()

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

?vcount

gorder docs等。

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()也会返回顶点数。 编辑示例以解释此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM