(1)读取网络
def load_graph(file_path):
with open(file_path, "r") as fd:
data = fd.readlines()
# 分离出标题和数据行,如果没有标题,用#号注释掉下面这两行)
title = data[0]
data = data[1:]
# 从数据中提取边,建立一个空的有向图G
edges = [it.strip().strip(",").split(",")[:2] for it in data]
G = nx.DiGraph()
G.add_edges_from(edges)
return G
(2)各种指标
nx.degree(G) # 计算节点的度。
计算图的密度,其值为边数m除以图中可能边数(即n(n-1)/2)
nx.clustering(G) # 网络节点的聚类系数。计算公式为:节点u的两个邻居节点间的边数除以((d(u)(d(u)-1)/2)。
nx.degree_centrality(G) # 节点度中心系数。通过节点的度表示节点在图中的重要性,默认情况下会进行归一化,其值表达为节点度d(u)除以n-1(其中n-1就是归一化使用的常量)。这里由于可能存在循环,所以该值可能大于1.
nx.closeness_centrality(G) # 节点距离中心系数。通过距离来表示节点在图中的重要性,一般是指节点到其他节点的平均路径的倒数,这里还乘以了n