我將一列邊緣導入到igraph。如何從igraph中的特徵值結果中獲取名稱屬性?
數據看起來像這樣。
393795446 18215973
393795446 582203919
393795446 190709835
393795446 1093090866
393795446 157780872
393795446 1580109739
393795446 3301748909
393795446 1536791610
393795446 106170345
393795446 9409752
這是Twitter追隨者的東西(來源,目標)。
我通過運行此代碼導入。
from igraph import *
import timeit
twitter_igraph = Graph.Read_Ncol('twitter_edgelist.txt', directed=True)
print twitter_igraph.summary()
IGRAPH DN-- 2869228 6764984 --
+ attr: name (v)
導入完成,我可以通過twitter_igraph.vs.find(name='393795446')
但是得到任何頂點回來,當我運行特徵值計算它返回只是所有這一切,我不知道如何反向查找頂點的列表獲取推特ID。
start = timeit.default_timer()
igraph_eg = twitter_igraph.evcent()
stop = timeit.default_timer()
print 'It takes {} seconds to finish'.format(stop - start)
igraph_eg.sort(reverse=True)
print igraph_eg[:10]
後我有點igraph_eg
我能得到的前10本徵值,但是我想表明頂點name
財產。如何用特徵值打印頂點的名稱?
這是我的解決辦法
np_vals = numpy.array(igraph_eg)
sorted_eigen = numpy.argsort(np_vals)[::-1][:20]
for eg in sorted_eigen:
print twitter_igraph.vs.find(eg)['name']