用途:NetworkX 是 Python 的图与复杂网络处理包,用于构建、分析和可视化节点与边构成的关系数据,如社交网络、生物网络、交通系统、引文网络和知识图谱。
主要能力:支持四种图类型——Graph(无向单边)、DiGraph(有向)、MultiGraph(无向多重边)、MultiDiGraph(有向多重边)。节点可为任意可哈希对象,节点和边均可带属性。提供最短路径、度中心性、介数中心性、PageRank、连通性、聚类、社区检测(如 greedy_modularity_communities)、最大流、最小生成树、同构判断等算法。内置经典图、随机图(Erdős-Rényi、Barabási-Albert、Watts-Strogatz)、网格、随机树等生成器。支持边列表、GraphML、GML、JSON、CSV、Pandas DataFrame、NumPy 数组、SciPy 稀疏矩阵等读写格式。可视化基于 matplotlib,可自定义节点颜色、大小、边宽,并提供 spring、circular、kamada_kawai、spectral 等布局。
使用方式:安装可执行 uv pip install networkx 或 uv pip install networkx[default]。典型流程为创建或加载图、查看结构、运行算法、可视化并导出结果。例如 G = nx.Graph(); G.add_edges_from([(1,2),(2,3)]);nx.shortest_path(G, source=1, target=4);nx.write_graphml(G, 'analyzed_network.graphml')。
适用场景:网络结构建模、中心性排序、路径与连通分析、社区发现、合成网络仿真、图数据格式转换及出版级网络图绘制。
限制:浮点精度会使结果近似,影响最小/最大类计算;每次运行需将图载入内存,大图应使用稀疏结构、子图或近似算法;随机图生成与力导向布局应设置随机种子以保证可复现。官方文档见 https://networkx.org/documentation/latest/,GitHub 见 https://github.com/networkx/networkx。