1. 自有测量函数
networkx中提供一些对网络的参数测量基本函数,包括获知网络节点数目(G.number_of_nodes())、网络的边数目(G.number_of_edges())、获取网络节点列表(G.nodes())和获取网络边列表(G.edges())。获取节点的度,G.degree(node_id);如果是有向图,可以是入度或出度,G.in_degree(node_id)。
还有对网络一些基本的测量,包括连通分量数目(nx.number_connect_components(G))、获取连通分量的节点列表(nx.connected_components(G),包含每个连通图的节点列表)、获取连通分量(nx.connected_component_subgraphs(G),返回的是列表,但是元素是图,这些分量按照节点数目从大到小排列,所以第一个就是最大的连通分量)。上述三个都是关于无向图的连通分量。
在有向图中有强连通分量的概念,获取强连通分量数目(nx.number_strongly_connected_components(G))、最大的强连通分量(nx.strongly_connected_component_subgraphs(G)[0])。
此外,还能测量网络直径的nx.diameter(G),注意这里的直径只能对连通的无向图操作。networkx中对有向图限制较多,例如非连通的无向图无法测量直径、有向图无法测量直径(只能先转换为无向图)、无法计算有向图中的聚类系数等。
2. 网络有效直径
网络直径并不能较好刻画网络特征,一般用有效直径衡量,有效直径指的是在该d下,90%以上的节点都是连通的。本人进行粗略的实现。这里假设,传入的无向图G,将所有节点之间的最短距离计算出来