NetworkX 复杂网络分析
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/networkx。
技能介绍
要解决什么问题
关系数据往往天然是「点—边—属性」:论文引用、社交关注、路网节点、蛋白互作、知识图谱实体链接。手写邻接表很快会在最短路径、社区划分、中心性、多格式交换和可视化上重复踩坑。NetworkX 是 Python 生态里事实上的图分析库;本 skill 面向 NetworkX 3.x(稳定版 3.6,Python ≥ 3.11),并明确弃用 3.0 前的旧 API(如 nx.info、nx.write_gpickle)及 3.4 时代的 nx.random_tree,文档里统一给出当前替代写法。
技能如何帮你干活
调用本 skill 时,可按任务类型走典型流程:
- 创建或加载图:用
Graph/DiGraph/MultiGraph/MultiDiGraph从数据建网,或为节点、边挂属性。 - 检查结构:节点数、边数、连通性、子图等基础结构检查。
- 分析:最短路径(如 Dijkstra)、中心性、社区检测、聚类、PageRank、最小生成树、最大流等标准算法。
- 合成网络:Erdős–Rényi、Barabási–Albert、小世界等生成器,用于测试或模拟。
- I/O 与可视化:边列表、GraphML、JSON、CSV、邻接矩阵及 Pandas 集成;用 matplotlib 或交互式库做布局与出版级图。
技能内附分主题参考(graph-basics、algorithms、generators、io、visualization),便于在对话里按需展开参数与用例,而不是只给零散函数名。
适用边界与注意点
- 精度:含浮点权重的图,算法结果在最小/最大意义上都是近似值。
- 规模:整图常驻内存;大图应优先考虑稀疏表示、子图、压缩格式,或对中心性等使用近似参数;NetworkX 3.x 可通过
backend=或nx.config.backend_priority接入 nx-cugraph、nx-parallel、graphblas-algorithms 等后端,算法调用方式不变。 - 可复现:随机图生成与力导向布局应固定随机种子。
- 节点标识:节点可为任意可哈希对象;删节点会连带删除关联边。
使用场景
- 论文或专利引用、作者合作等边列表已就绪,需要在 Python 里建无向/有向图并计算最短路径与 PageRank。
- 知识图谱或本体中的实体关系已导出为 CSV/JSON,要加载为 NetworkX 图并做社区检测与聚类系数等结构分析。
- 推荐或传播模型缺少真实拓扑,要用 Barabási–Albert、Watts–Strogatz 等生成器构造可复现的合成网络做对照实验。
- 路网、供应链或社交关注关系分析完成后,需导出 GraphML 或边列表,并用 matplotlib 做力导向或出版级网络图。
适合人员
- 维护论文引用或合作网络的科研助理,每周要把新边列表并入图并更新中心性指标。
- 负责知识图谱 ETL 的数据工程师,需要在 Python 脚本里校验连通性、抽子图并跑标准图算法。
- 讲授复杂网络或图论实验课的高校教师/助教,要准备带固定随机种子的生成器示例与可视化作业。
- 做社交或传播仿真的算法工程师,依赖 NetworkX 3.x 文档区分已移除 API 与当前最短路径、流算法写法。