关闭

使用networkx计算网络的介数中心性

标签: 复杂网络介数中心性
632人阅读 评论(0) 收藏 举报
分类:

网络节点的重要性指标介数中心性的计算,使用python的networkx包

import networkx as nx

G = nx.Graph()

# 从文件@filename中读取网络的adjacentMatrix,通过networkx的add_edges方法向对象G中添加边
def readNetwork(filename):
	fin = open(filename, 'r')
	# for line in fin:
	# 	for node in line:
	# 		print(node, end="")
			
	# lines = fin.readlines()
	# print(len(lines))

	rowCount = 1;
	colCount = 1;
	for line in fin.readlines():
		line = line.split(" ")
		for node in line:
			if node == '1':
				G.add_edge(rowCount, colCount)
			colCount = colCount + 1
		colCount = 1
		rowCount += 1

	print(G.edges())

# 计算网络中的节点的介数中心性,并进行排序输出
def topNBetweeness():
	score = nx.betweenness_centrality(G)
	score = sorted(score.items(), key=lambda item:item[1], reverse = True)
	print("betweenness_centrality: ", score)
	output = []
	for node in score:
		output.append(node[0])

	print(output)
	fout = open("betweennessSorted.data", 'w')
	for target in output:
		fout.write(str(target)+" ")

readNetwork("sf100.data")
topNBetweeness()


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:70984次
    • 积分:1441
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:0篇
    • 评论:48条
    最新评论