如何从(node,value)对计算我的图的节点

时间:2019-05-22 12:09:31

标签: python-3.x networking graph

我是Python的新手,在计算网络中节点的中心性(在这种情况下为katz中心性)时,我获得了具有最高中心性的顶级节点,但是我不知道如何从中获取节点名称(int)给定的(节点,值)对?

我已经尝试过了:

list(reversed(sorted((value, node)for (node, value) in centrality.items())))[0][1]

但是它只给我前1个节点的名称,而不是前k个节点的名称。

import networkx as nx 
import math 
G = nx.read_gml("dataset.gml", label='id')

phi = (1+math.sqrt(5))/2.0 # largest eigenvalue of adj matrix 
centrality = nx.katz_centrality_numpy(G,1/phi-0.01) 

import operator
budget=5

k=sorted(centrality.items(),key=operator.itemgetter(1), reverse=True)[0:budget]


print(k)

[(32,0.43505798508638444),(9,0.33579188967615126,(29,0.2710852009834701),(3,0.25130944720377396),(1,0.24699259560662057)]

0 个答案:

没有答案