检查Igraph中是否连接了2个顶点用于Python

时间:2012-12-13 08:15:18

标签: python graph igraph edge

对于python 2.7,igraph 0.6中是否有一个非常短的表达式,以查看索引指定的两个顶点是否通过边连接?

我找到了某个地方:

are_connected(v1, v2)  

但在python中我会收到一条错误消息:“NameError:全局名称'are_connected'未定义”

上面的表达可能是R或完全错误。我不知道。 R对我正在尝试的项目来说还不够。

我的图表是无向的,并且有许多顶点和边缘序列(vs和es),在本教程中描述:http://hal.elte.hu/~nepusz/development/igraph/tutorial/tutorial.html

更新: 我找到了http://packages.python.org/python-igraph/igraph.GraphBase-class.html#is_multiple is_multiple和is_mutual我认为他们每个人都可以做到这一点,但我仍然得到错误:“NameError:全局名称'are_mutual'未定义”。

在互联网上,我找不到如何正确实现它的示例。我还在寻找。

3 个答案:

答案 0 :(得分:10)

GraphBase类具有函数get_eid(v1, v2, directed=True, error=True),它返回由其索引指定的顶点之间的任意边。在你这样称呼它:

g.get_eid(v1, v2, directed=False, error=False)

如果顶点断开,它将返回-1,否则返回一些边缘。

答案 1 :(得分:9)

对于记录:are_connected(以及海报提到的is_mutualis_multiple)是图表本身的方法,而不是他们的功能拥有,所以使用它们的正确方法如下:

>>> g = Graph.GRG(100, 0.2)
>>> g.are_connected(0, 2)
False

答案 2 :(得分:0)

我从未听说过那个模块,但无论如何,这似乎是一个导入问题,试图从模块中导入该函数,即:

from igraph import are_connected

否则,python将无法识别它。 另一种可能性是必须从您首先声明的图形对象调用该函数:

from module import MyGraphObject
...
MyGraphObject.are_connected(...)