用途:NetworkX 是用于创建、操作和分析复杂网络与图的 Python 库,适合处理成对实体关系数据,如社交网络、蛋白质互作网络、基因调控网络、代谢通路、交通与通信网络、引文图等。
主要能力:提供无向图 Graph、有向图 DiGraph、多重边图 MultiGraph 与 MultiDiGraph 四种数据结构;支持节点与边的属性字典、子图、邻居与度查询。分析算法包括度中心性、介数中心性、接近中心性、特征向量中心性与 PageRank;最短路径、平均最短路径、连通分量、强/弱连通、节点与边连通度;社区发现含贪心模块度、标签传播与 Girvan-Newman。还提供随机图、无标度图、小世界图、随机块模型等生成器,以及 GraphML、GML、边列表、JSON、Pandas、NumPy/SciPy 稀疏矩阵等 I/O 与 matplotlib 可视化。
使用方式:安装命令为 pip install networkx matplotlib scipy pandas numpy,可选 pydot 或 pygraphviz 用于 Graphviz 布局。典型流程为建图并添加带权边、计算中心性、检测社区、导出结果。批量数据建议用 nx.from_pandas_edgelist;大图介数中心性可用 k 参数近似采样;子图需 .copy() 才能修改;持久化建议用 GraphML 或 GML 以保留属性。
适用场景:社交网络影响力与社区分析、生物互作网络枢纽识别、路径与连通性分析、合成网络生成与零模型、网络拓扑可视化。
限制:资料指出,10 万节点以上且对速度要求高时宜改用 igraph 或 graph-tool;十亿边或需 GPU 加速时宜用 graph-tool 或 cuGraph;图神经网络与深度学习宜用 torch-geometric。nx.info() 已弃用,应改用 number_of_nodes()、number_of_edges()、nx.density()。算法返回顺序不保证,应按节点键索引而非位置。其余收费、价格与平台信息暂未提供。