利用python求解度中心性

利用networkx里面的函数degree_centrality(G)来求解图的度中心性。

代码如下

# -*- coding: utf-8 -*-
"""
Created on Sat Sep 14 18:01:27 2019

@author: Administrator
"""

'''
程序的算法思想:需要读入一个邻接矩阵,存储在TXT文本中,
然后读入程序里面。使用图的邻接矩阵来还原成一个图,
然后使用networkx里面的函数degree_centrality(G)
来求解图的度中心性。

'''
import matplotlib.pyplot as plt
import networkx as nx
import operator


def matrix_to_graph():
    
  G = nx.Graph()
  
  filestr = ""
  
  with open("mlMatrix.txt") as files:
     for line in files:
         filestr += line.strip()
 
  
  #将字符串转换成列表
  matrix = eval(filestr)

  nodes = range(len(matrix))
  G.add_nodes_from(nodes)
 
  for i in range(len(matrix)):
    for j in range(len(matrix)):
      if(matrix[i][j] == 1):
		G.add_edge(i, j)
  
  dc = nx.algorithms.centrality.degree_centrality(G)
  print(dc)
  print("----------------------------------------")
  
   #将字典的形式转化成按照value从小到大排序
  list_dc = sorted(dc.items(), key=operator.itemgetter(1))
  print(list_dc)

matrix_to_graph()

结果如下:

在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值