对于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'未定义”。
在互联网上,我找不到如何正确实现它的示例。我还在寻找。
答案 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_mutual
和is_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(...)