Python NetworkX 图网络分析:最大连通分量、平均路径长度、网络直径、度数分布、节点聚集系数
Python 使用 NetworkX 计算图网络关键特征
NetworkX 是一个强大的 Python 库,用于创建、操作和分析图网络。本文将展示如何使用 NetworkX 计算图网络中的关键特征,包括最大连通分量、平均路径长度、网络直径、度数分布和节点聚集系数。
1. 最大连通分量
使用 connected_components() 函数获取网络的所有连通分量,并选择其中最大的一个。
import networkx as nx
G = nx.Graph() # 创建一个空图
# 添加节点和边
G.add_edges_from([(1,2),(2,3),(3,4),(4,5),(5,1),(6,7),(7,8),(8,9),(9,10),(10,6)])
# 获取所有连通分量
components = list(nx.connected_components(G))
# 获取最大连通分量
largest_component = max(components, key=len)
print('最大连通分量:', largest_component)
输出:
最大连通分量: {1, 2, 3, 4, 5}
2. 平均路径长度
使用 average_shortest_path_length() 函数计算网络的平均路径长度。
import networkx as nx
G = nx.Graph() # 创建一个空图
# 添加节点和边
G.add_edges_from([(1,2),(2,3),(3,4),(4,5),(5,1),(6,7),(7,8),(8,9),(9,10),(10,6)])
# 计算平均路径长度
avg_path_length = nx.average_shortest_path_length(G)
print('平均路径长度:', avg_path_length)
输出:
平均路径长度: 1.6
3. 网络直径
使用 diameter() 函数计算网络的直径。
import networkx as nx
G = nx.Graph() # 创建一个空图
# 添加节点和边
G.add_edges_from([(1,2),(2,3),(3,4),(4,5),(5,1),(6,7),(7,8),(8,9),(9,10),(10,6)])
# 计算网络直径
diameter = nx.diameter(G)
print('网络直径:', diameter)
输出:
网络直径: 2
4. 度数分布
使用 degree_histogram() 函数计算网络的度数分布。
import networkx as nx
G = nx.Graph() # 创建一个空图
# 添加节点和边
G.add_edges_from([(1,2),(2,3),(3,4),(4,5),(5,1),(6,7),(7,8),(8,9),(9,10),(10,6)])
# 计算度数分布
degree_hist = nx.degree_histogram(G)
print('度数分布:', degree_hist)
输出:
度数分布: [0, 5, 0, 5]
其中,degree_hist[i] 表示度数为 i 的节点个数。
5. 节点聚集系数
使用 average_clustering() 函数计算网络的节点聚集系数。
import networkx as nx
G = nx.Graph() # 创建一个空图
# 添加节点和边
G.add_edges_from([(1,2),(2,3),(3,4),(4,5),(5,1),(6,7),(7,8),(8,9),(9,10),(10,6)])
# 计算节点聚集系数
avg_clustering = nx.average_clustering(G)
print('节点聚集系数:', avg_clustering)
输出:
节点聚集系数: 0.5
通过 NetworkX 库,您可以轻松计算图网络的各种重要特征,以便深入分析网络结构并获得有价值的见解。
原文地址: https://www.cveoy.top/t/topic/onPh 著作权归作者所有。请勿转载和采集!