2012-12-13 89 views
2

是否有的igraph 0.6 2.7蟒非常短的表達,以查看是否由索引指定的兩個頂點通過邊相連或不?檢查2個頂點被連接在IGRAPH用於Python

我在什麼地方找到:

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

我還沒有聽說過'igraph'; Python IME的標準圖形庫是'networkx'。它有['connected_components'(http://networkx.lanl.gov/_modules/networkx/algorithms/components/connected.html) – katrielalex

回答

7

GraphBase類具有功能get_eid(v1, v2, directed=True, error=True),它返回其索引指定的頂點之間的任意邊。在你這樣稱呼它:

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

它將返回-1,如果頂點斷開,否則一些邊緣。

+0

返回'-1'在這種情況下,聽起來像一個可怕的想法... – phant0m

+0

@ phant0m ,爲什麼這麼糟糕? – Andrei

+0

這對我想要做的事情非常合適。梅爾西安德烈。這是我正在尋找的解決方案。 – Laci

0

我從來沒有聽說過這個模塊,但是,無論如何,現在看來似乎是一個進口的問題,試圖從模塊導入功能,即:

from igraph import are_connected 

,否則蟒蛇不會承認它。 另一種可能性是,該功能必須從你首先聲明一個圖形對象被稱爲:

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

我會記住{從模塊導入MyGraphObject ...}解決方案,因爲當然我會在我的項目中遇到很多類似的問題,但首先我確實遵循了Andrei的想法,對我來說這很容易。不管怎樣,謝謝你! – Laci

8

對於記錄:are_connected(也is_mutualis_multiple該海報已經提到)是方法圖表的本身並沒有自己的功能,所以使用它們的正確方法如下:

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

Aham ...我開始得到這個東西:-P謝謝! – Laci