python networkx加权中心性度量

python networkx加权中心性度量,python,network-programming,networkx,Python,Network Programming,Networkx,我希望计算加权中心性度量。重量越大,连接越牢固 G=nx.Graph() G.add_edge('a','b',weight=0.1) G.add_edge('b','c',weight=1.5) G.add_edge('a','c',weight=1.0) G.add_edge('c','d',weight=22) bet1=nx.betweenness_centrality(G, weight='weight', endpoints=False) bet2=nx.betweenness_c

我希望计算加权中心性度量。重量越大,连接越牢固

G=nx.Graph()
G.add_edge('a','b',weight=0.1)
G.add_edge('b','c',weight=1.5)
G.add_edge('a','c',weight=1.0)
G.add_edge('c','d',weight=22) 
bet1=nx.betweenness_centrality(G, weight='weight', endpoints=False)
bet2=nx.betweenness_centrality(G, weight=None, endpoints=False)
print(bet1,bet2)
clo1=nx.closeness_centrality(G, distance='weight')
clo2=nx.closeness_centrality(G)
print(clo1,clo2)
以下是我的问题: 1.加权介数中心性和非加权介数中心性之间没有区别。 2.距离应等于1/重量。我尝试了下面的代码,但不起作用。我不知道如何解决这个问题,除了创建一个新的网络,其中重量=1/重量

clo1=nx.closeness_centrality(G, distance=1/'weight')

距离必须是“边”属性的名称。在使用此参数之前,请计算属性的值并为其命名。此外,我确实看到了中心性之间的差异:
print(clo1,clo2)>{'a':0.12448132780082986,'b':0.1234567901245678,'c':0.12448132780082986,'d':0.04405286343612335}{'a':0.75,'c':1.0,'d':0.6}
。请检查您的数据。@DyZ谢谢!关于中间性中心性提供相同结果的问题,不管它是否加权?在我的例子中不是这样:
print(bet1,bet2)>>{'a':0.666666,'b':0.0,'c':0.66666666,'d':0.0}{'a':0.0,'b':0.0,'c':0.6666666666,'d'
。哦,是的,你是对的!我真不敢相信我错过了。谢谢你@DyZ