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 库,您可以轻松计算图网络的各种重要特征,以便深入分析网络结构并获得有价值的见解。

Python NetworkX 图网络分析:最大连通分量、平均路径长度、网络直径、度数分布、节点聚集系数

原文地址: https://www.cveoy.top/t/topic/onPh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录