一種通過numpy生成矩陣計算度中心性的方法

2021-10-07 15:54:38 字數 1384 閱讀 8619

關鍵是找好節點與位置的對應關係!同時考慮好矩陣一行的計算m[1]與一列m[:,1]的寫法

import networkx as nx

import numpy as np

from matplotlib import pyplot as plt

def nodedegree(g

): #計算有向圖出度中心性及無向圖的度中心性

n=list(g

.nodes()

)m= nx.

to_numpy_matrix(g

, nodelist=

n) #計算矩陣行:np.

sum(m[

1])與列:np.

sum(m[

:,1])

d=for i inn:

t=n.

index

(i) #返回節點i在列表中的位置,對應矩陣中元素

d[i]

=(np.

sum(

m[t]))

/(len(n)

-1) #度中心性計算方法是度除節點數-

1return d

if __name__ ==

"__main__":g

=nx.

digraph()

with

open

('e:\\kt\\kkkk.txt'

)as f: #資料集根據位置取

# n, m = f.

readline()

.split()

for line in f:

u, v =

map(int, line.

split()

)try:g

[u][v]

['weight']+=

1 except:g.

add_edge

(u,v, weight=1)

print

(nodedegree(g

))# pos = nx.

spring_layout(g

) # 此語句可以不要,圖形固定,否則會變化

# nx.

draw(g

, pos, node_color=

'r', node_size=

400, with_labels=true, alpha=

0.9)

# plt.

show(g

)

資料集樣式

1 21 3

1 42 4

3 94 9

2 99 1

一種使用Python計算可達矩陣的簡單方法

在進行編碼前要簡單介紹幾個知識點 有向圖,鄰接矩陣,可達矩陣 現實中常常會表示從乙個地點到另乙個地點的路徑,這樣的帶有從起點到終點的路線表示可以用有向圖表示。如下圖所示 在該圖中,可以看成由地點f1到f2,以及f1到f3,f3到f2的路徑。這種有向圖也表示兩個因素的相互影響關係,再結合上面的有向圖,...

一種計算留存的思路

在一些統計系統中,為了觀察使用者的粘度,我們會計算一系列的叫做留存的指標 次日註冊留存 2日註冊留存.n日註冊留存,比如昨天註冊了1000名使用者中,在今天有300名使用者又登入了,那麼對應於昨天的註冊留存就是30 如果再去細究,還可以去計算活躍使用者的留存情況,比如昨天登入的1000名使用者中,在...

換一種方式計算人生

人的一生到底有多長?這常常被人們當作數學題來計算,並且作為智者的名言,用於教導人們珍惜光陰。人生的計算結果,古今中外各個不同,然而計算方法卻大同小異。無非是把整體的人生進行一系列的減法,然後得出 人生淨差 並以此為結果告訴人們人生之短。以美國 讀者文摘 所刊載的乙個人生算式為例 一生以60歲為標準,...