一、networkx介绍
networkx在2002年5月产生,是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。
二、复杂网络介绍
复杂网络(Complex Network),是指具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络。钱学森给出了复杂网络的一个较严格的定义:具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络称为复杂网络。
三、图的介绍
- Graph的定义
图是复杂网络研究中的一个重要概念。Graph是用点和线来刻画离散事物集合中的每对事物间以某种方式相联系的数学模型。网络作为图的一个重要领域,包含的概念与定义更多,如有向图网络(Directed Graphs and Networks)、无向图网络(Undirected)等概念。
Graph在现实世界中随处可见,如交通运输图、旅游图、流程图等。利用图可以描述现实生活中的许多事物,如用点可以表示交叉口,点之间的连线表示路径,这样就可以轻而易举的描绘出一个交通运输网络。
- Graph的结构
根据Graph的定义,一个Graph包含一个节点集合和一个边集。将图表示为可以在计算机中处理的形式常见表示方式:①邻接矩阵②邻接表③三元组
- Graph分类
Graph:指无向图(undirected Graph),即忽略了两节点间边的方向。
DiGraph:指有向图(directed Graph),即考虑了边的有向性。
MultiGraph:指多重无向图,即两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联。
MultiDiGraph:多重图的有向版本。
G = nx.Graph() # 创建无向图
G = nx.DiGraph() # 创建有向图
G = nx.MultiGraph() # 创建多重无向图
G = nx.MultiDigraph() # 创建多重有向图
G.clear() #清空图
四、网络的统计指标
度:节点度是指和该节点相关联的边的条数,又称关联度。特别地,对于有向图,节点的入度 是指进入该节点的边的条数;节点的出度是指从该节点出发的边的条数。
平均路径长度:平均路径长度是拓扑网络中的一个概念,定义为所有可能的网络节点对的最短路径上的平均步数。它是网络上信息或大众运输效率的一种度量。
集聚系数:在图论中,聚类系数是图中节点聚类的程度的度量。有证据表明,在大多数真实世界的网络中,特别