使用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()


  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值