[ PROMPT_NODE_26850 ]
networkx
[ SKILL_DOCUMENTATION ]
# NetworkX
## 概述
NetworkX 是一个用于创建、操作和分析复杂网络与图的 Python 包。当处理网络或图数据结构(包括社交网络、生物网络、交通系统、引文网络、知识图谱或任何涉及实体间关系的系统)时,请使用此技能。
## 何时使用此技能
当任务涉及以下内容时,请调用此技能:
- **创建图**:从数据构建网络结构,添加带有属性的节点和边
- **图分析**:计算中心性度量、寻找最短路径、检测社区、测量聚类
- **图算法**:运行标准算法,如 Dijkstra、PageRank、最小生成树、最大流
- **网络生成**:创建合成网络(随机、无标度、小世界模型)用于测试或模拟
- **图 I/O**:读取或写入各种格式(边列表、GraphML、JSON、CSV、邻接矩阵)
- **可视化**:使用 matplotlib 或交互式库绘制和自定义网络可视化
- **网络比较**:检查同构性、计算图指标、分析结构属性
## 核心能力
### 1. 图的创建与操作
NetworkX 支持四种主要的图类型:
- **Graph**: 具有单边的无向图
- **DiGraph**: 具有单向连接的有向图
- **MultiGraph**: 允许节点间存在多条边的无向图
- **MultiDiGraph**: 允许存在多条边的有向图
创建图的方法:
python
import networkx as nx
# 创建空图
G = nx.Graph()
# 添加节点 (可以是任何可哈希类型)
G.add_node(1)
G.add_nodes_from([2, 3, 4])
G.add_node("protein_A", type='enzyme', weight=1.5)
# 添加边
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 4)])
G.add_edge(1, 4, weight=0.8, relation='interacts')
**参考**:请参阅 `references/graph-basics.md` 以获取关于创建、修改、检查和管理图结构的全面指南,包括处理属性和子图。