接近中心性python實現

2021-10-10 08:46:41 字數 1886 閱讀 2815

import networkx as nx

import matplotlib.pyplot as plt

import pylab

import numpy as np

defgetclosenesscentrality

(graph)

: closeness=

for i in graph.nodes():

sumdij =0;

for j in graph.nodes():

if(i != j)

:try

:

sumdij += nx.dijkstra_path_length(graph, source=i, target=j)

except

:continue

di = sumdij/nx.number_of_nodes(graph)

if di ==0:

(i,di)

)else

:

(i,1

/di)

)return closeness

#自定義網路

row=np.array([0

,0,0

,1,2

,3,6

])col=np.array([1

,2,3

,4,5

,6,7

])value=np.array([1

,2,1

,8,1

,3,5

])print

('生成乙個空的有向圖'

)g=nx.digraph(

)print

('為這個網路新增節點...'

)for i in

range(0

,np.size(col)+1

):g.add_node(i)

print

('在網路中新增帶權中的邊...'

)for i in

range

(np.size(row)):

g.add_weighted_edges_from(

[(row[i]

,col[i]

,value[i])]

)print

('給網路設定布局...'

)pos=nx.shell_layout(g)

print

('畫出網路影象:'

)nx.draw(g,pos,with_labels=

true

, node_color=

'white'

, edge_color=

'red'

, node_size=

400, alpha=

0.5)

pylab.title(

'closenesscentralitytest'

,fontsize=15)

pylab.show(

)close = getclosenesscentrality(g)

print

(close)

生成乙個空的有向圖

為這個網路新增節點...

在網路中新增帶權中的邊...

給網路設定布局...

畫出網路影象:

python求解接近中心性

求解網路科學裡面的接近中心性 import matplotlib.pyplot as plt import networkx as nx import operator def get closeness centrality g nx.graph filestr 需要讀入的鄰接矩陣 with op...

軟體構造之度中心性

ps 寫在這裡只是為了方便以後忘記後理解。對於了解圖論的朋友而言,最短路這個概念一定不陌生。我們設想乙個實際生活中的場景,比如你要建乙個大型的娛樂商場,你可能會希望周圍的顧客到達這個商場的距離都可以盡可能地短。這個就涉及到接近中心性的概念,接近中心性的值為路徑長度的倒數。接近中心性需要考量每個結點到...

各種度中心性的定義與區別

ps 知識儲備 當然,剛才這個情況是無向圖的情形,如果是有向圖,需要考慮的出度和入度的問題。接近中心性 closeness 對於了解圖論的朋友而言,最短路這個概念一定不陌生。我們設想乙個實際生活中的場景,比如你要建乙個大型的娛樂商場,你可能會希望周圍的顧客到達這個商場的距離都可以盡可能地短。這個就涉...