SuperAPI AI 工具集

networkx

数据与分析

查看项目

更新于 10-16 04:03

技能介绍

NetworkX 是一个用于创建、操作和分析复杂网络与图的 Python 包。用户数据中给出的信息显示,该技能适用于处理网络或图数据结构的场景,包括社交网络、生物网络、交通系统、引文网络、知识图谱,或任何涉及实体间关系的系统。

【用途】 当任务涉及以下内容时可使用:创建图(从数据构建网络结构、添加带属性的节点和边)、图分析(计算中心性度量、查找最短路径、检测社区、测量聚类)、图算法(运行 Dijkstra、PageRank、最小生成树、最大流等标准算法)、网络生成(创建随机、无标度、小世界等合成网络用于测试或仿真)、图 I/O(读写边列表、GraphML、JSON、CSV、邻接矩阵等格式)、可视化(用 matplotlib 或交互式库绘制和自定义网络可视化)、网络比较(检查同构、计算图指标、分析结构属性)。

【主要能力】

  1. 图的创建与操作:支持四类主要图:Graph(无向单边图)、DiGraph(有向图)、MultiGraph(允许节点间多条边的无向图)、MultiDiGraph(允许多条边的有向图)。可添加任意可哈希类型的节点,并支持节点与边属性。
  2. 图算法:提供最短路径、中心性度量(度中心性、介数中心性、PageRank)、社区检测(贪婪模块度社区)、连通性(连通性判断、连通分量)等。
  3. 图生成器:经典图(完全图、环图、Karate Club、Petersen 图)、随机网络(Erdős-Rényi、Barabási-Albert 无标度、Watts-Strogatz 小世界)、结构化网络(网格图、随机树)。
  4. 读写图:支持边列表、GraphML、GML、JSON(node_link_data/node_link_graph)、Pandas DataFrame、NumPy 数组、SciPy 稀疏矩阵等格式。
  5. 可视化:支持基本绘制、按度着色、按中心性设置节点大小、按权重设置边宽、多种布局算法(spring、circular、kamada_kawai、spectral)、出版级图表输出。

【使用方式】 安装:确保 NetworkX 已安装,可用 uv pip install networkx,或用 uv pip install networkx[default] 安装可选依赖。 典型工作流:创建或加载图 → 检查结构(节点数、边数、密度、连通性)→ 分析(计算指标、查找路径、检测社区)→ 可视化(布局后绘制)→ 导出结果(保存图或用 DataFrame 保存指标到 CSV)。

【适用场景】 社交网络分析、生物网络、交通系统、引文网络、知识图谱,以及任何涉及实体间关系的系统。

【限制与注意事项】

  • 浮点精度:图中包含浮点数时,结果受精度限制为近似值,可能影响算法结果,尤其是在最小/最大计算中。
  • 内存与性能:每次脚本运行需将图数据加载进内存;对大网络建议使用合适的数据结构(大稀疏图用稀疏矩阵)、只加载必要子图、使用高效文件格式(Python 对象用 pickle、压缩格式)、采用近似算法(如中心性计算中的 k 参数)。
  • 节点和边类型:节点可为任意可哈希 Python 对象;建议使用有意义的标识符;删除节点时其关联边会自动删除。
  • 随机种子:随机图生成和力导向布局应设置随机种子以保证可复现性。