- 图的表示 邻接矩阵,节点之间有连接值为1,否则0
- 图的特性
- 度 无向图:节点连接的边数;有向图: 出边数为出度,入边数为入度。
- 子图 由图的节点集的子集以及边集的子集构成的图
- 连通分量 连通图本身为其唯一连通分量,非连通无向图有多个连通分量。
- 连通图 强连通图:任意两个点之间相互可达; 弱连通图:至少一对节点不满足单向连通,而去掉边的方向后是连通图。
- 最短路径 两个节点之间的可达经过的最少边数。
- 图直径 图中任意两两节点的最短路径的最大值。
- 结构属性
- 度中心性
- 特征向量中心性 邻接矩阵最大特征值所对应的特征向量
- 中介中心性
- 连接中心性
- PageRank 节点PR为指向它的节点的PR值之和,边PR为该节点PR的平均。
- Hits(hub、authority) 节点hub值为它所指向的节点的authority值之和,节点authority值为指向它的节点的hub值之和。
- 度中心性
- 代码
import numpy as np import pandas as pd import networkx as nx edges = pd.DataFrame() edges['sources'] = [0,1,2,3,4,4,6,7,7,9,1,4,4,4,6,7,5,8,9,8] edges['targets'] = [1,4,4,4,6,7,5,8,9,8,0,1,2,3,4,4,6,7,7,9] #edges['weights'] = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] G = nx.from_pandas_edgelist(edges, source='sources',target='targets') # degree print(nx.degree(G)) # 连通分量 print(list(nx.connected_components(G))) # 图直径 print(nx.diameter(G)) # 度中心性 print('度中心性',nx.degree_centrality(G)) # 特征向量中心性 print('特征向量中心性',nx.eigenvector_centrality(G)) # betweenness print('betweenness',nx.betweenness_centrality((G))) # closeness print('closeness',nx.closeness_centrality(G)) # pagerank print('pagerank',nx.pagerank(G)) # HITS print('HITS',nx.hits(G,tol=0.00001))