3
這個問題已經在github上提交,類似於6個月前,但由於它尚未修復,所以我想知道是否有快速修復,我缺少。根據頂點名稱執行圖的聯合Python igraph
我希望用他們的名字合併兩個圖表:
g1 = igraph.Graph()
g2 = igraph.Graph()
# add vertices
g1.add_vertices(["A","B"])
g2.add_vertices(["B","C","D"])
for vertex in g1.vs:
print vertex.index
0
1
for vertex in g2.vs:
print vertex.index
0
1
2
然而,當我完成了工會,IGRAPH使用頂點的ID,而不是名稱,所以我結束了三個頂點,而不是四個(如果它是基於名稱的話)。我想這是因爲B
的索引0
在g2
,它合併的g1
。並且以類似的方式,的g2
與g1
的B
合併。
g_union = igraph.Graph.union(g1,g2)
g_union.vs['name'] # of course
KeyError: 'Attribute does not exist'
for vertex in g_union.vs:
print vertex.index
0
1
2
有關如何繞過此問題的任何想法?這是可能的,因爲它是在igraph的R實現中完成的。
聯合名稱在igraph中還不支持(除非您願意自己編寫代碼)。 C核本身不支持基於頂點屬性的聯合。 R版本支持它,因爲有人在純R中爲它寫了一個函數。不幸的是,我最近很少花時間致力於igraph,所以我擔心你必須自己用Python來想出類似的函數。 –
@Tamás感謝您的坦誠回答。我會嘗試看看我是否可以在Python中重現R函數,並在正面發佈時保持發佈。 – Antoine
@Tamás我找不到你在github上提到的R函數。你會友善地指點我嗎?感謝您的時間 – Antoine