复杂网络特征与networkx实现------(二)


图的类型

  • Graph类是无向图的基类,无向图能有自己的属性或参数,不包含重边,允许有回路,节点可以是任何hash的python对象,节点和边可以保存key/value属性对。该类的构造函数为Graph(data=None,**attr),其中data可以是边列表,或任意一个Networkx的图对象,默认为none;attr是关键字参数,例如key=value对形式的属性。
import networkx as nx      #导入NetworkX包,为了少打几个字母,将其重命名为nx
G = nx.Graph()              #建立一个空的无向图G
  • MultiGraph是可以有重边的无向图,其它和Graph类似。其构造函数MultiGraph(data=None, *attr)。

  • DiGraph是有向图的基类,有向图可以有数自己的属性或参数,不包含重边,允许有回路;节点可以是任何hash的python对象,边和节点可含key/value属性对。该类的构造函数DiGraph(data=None,**attr),其中data可以是边列表,或任意一个Networkx的图对象,默认为none;attr是关键字参数,例如key=value对形式的属性。

  • MultiDiGraph是可以有重边的有向图,其它和DiGraph类似。其构造函数MultiDiGraph(data=None, *attr)。


基本概念

  • 距离
    最短距离:两节点 v i 和节点 v j 经历边数最少的一条简单路径
    直径:任意两个节点距离的最大值 D = m a x i , j d ( i j )
    这里写图片描述


  • 节点度:无向图中,与节点v 相连的节点数量d(v)或 k i
    有向图中 分 出度和入度,入度 其他节点指向节点v的个数 d i n ( v )
    出度,节点v指向其他节点的个数

    网络平均度 D = a v g i , j d ( i j )

    度分布
    这里写图片描述

    累计度分布

这里写图片描述

  • 聚集系数
    网络G =(V,E)
    d( v i )表示 v i 的度值
    与节点 v i 相连的顶点有d( v i ), 这些节点实际相恋的次数为 M i
    最多可能的边数为 d ( v i ) ( d ( v i ) 1 ) / 2
    节点 v i 的聚集系数为
    c i = 2 M i d ( v i ) ( d ( v i ) 1 )

这里写图片描述
这里写图片描述

  • 介数

这里写图片描述
这里写图片描述

  • 核数

这里写图片描述

  • 度中心性
    节点 v i 的度中心性:
    d ( v i ) / ( N 1 )

网络G 含N个节点的 度中心:

C D = I = 1 N [ C D ( V m a x ) C D ( V i ) ] / H

这里写图片描述

  • 介数中心性
    这里写图片描述

  • 接近度指标
    这里写图片描述

  • 密度
    这里写图片描述



networkx实现

import networkx as nx #使用库的声明  
G=nx.Graph()  #初始化  
G=nx.Graph(name='my graph')  
e=[(1,2),(1,3),(2,3),(3,4),(4,5)]  
G=nx.Graph(e)  #为图G添加边  
#节点数
len(G)
##边数
G.number_of_edges()
###节点表
G.nodes()
##边表
G.edges()
Out[27]: EdgeView([(1, 2), (1, 3), (2, 3), (3, 4), (4, 5)])

猜你喜欢

转载自blog.csdn.net/changzoe/article/details/81078728