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

网络节点的重要性指标介数中心性的计算,使用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()


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/robin_Xu_shuai/article/details/73699200
上一篇基于演化博弈数据利用压缩感知方法进行网络重构
下一篇SI疾病传播模型实现
想对作者说点什么? 我来说一句

度中心性算法

2015年05月25日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭