[ SKILL_DOCUMENTATION ]
# NetworkX 输入/输出
## 从文件读取图
### 邻接列表格式
python
# 读取邻接列表(简单的文本格式)
G = nx.read_adjlist('graph.adjlist')
# 带节点类型转换
G = nx.read_adjlist('graph.adjlist', nodetype=int)
# 用于有向图
G = nx.read_adjlist('graph.adjlist', create_using=nx.DiGraph())
# 写入邻接列表
nx.write_adjlist(G, 'graph.adjlist')
邻接列表格式示例:
# node neighbors
0 1 2
1 0 3 4
2 0 3
3 1 2 4
4 1 3
### 边列表格式
python
# 读取边列表
G = nx.read_edgelist('graph.edgelist')
# 带节点类型和边数据
G = nx.read_edgelist('graph.edgelist',
nodetype=int,
data=(('weight', float),))
# 读取加权边列表
G = nx.read_weighted_edgelist('weighted.edgelist')
# 写入边列表
nx.write_edgelist(G, 'graph.edgelist')
# 写入加权边列表
nx.write_weighted_edgelist(G, 'weighted.edgelist')
边列表格式示例:
# source target
0 1
1 2
2 3
3 0
加权边列表示例:
# source target weight
0 1 0.5
1 2 1.0
2 3 0.75
### GML (图建模语言)
python
# 读取 GML(保留所有属性)
G = nx.read_gml('graph.gml')
# 写入 GML
nx.write_gml(G, 'graph.gml')
### GraphML 格式
python
# 读取 GraphML(基于 XML 的格式)
G = nx.read_graphml('graph.graphml')
# 写入 GraphML
nx.write_graphml(G, 'graph.graphml')
# 指定编码
nx.write_graphml(G, 'graph.graphml', encoding='utf-8')
### GEXF (图交换 XML 格式)
python
# 读取 GEXF
G = nx.read_gexf('graph.gexf')
# 写入 GEXF
nx.write_gexf(G, 'graph.gexf')
### Pajek 格式
python
# 读取 Pajek .net 文件
G = nx.read_pajek('graph.net')
# 写入 Pajek 格式
nx.write_pajek(G, 'graph.net')
### LEDA 格式
python
# 读取 LEDA 格式
G = nx.read_leda('graph.leda')
# 写入 LEDA 格式
nx.write_leda(G, 'graph.leda')
## 使用 Pandas
### 从 Pandas DataFrame 读取
python
import pandas as pd
# 从边列表 DataFrame 创建图
df = pd.DataFrame({
'source': [1, 2, 3, 4],
'target': [2, 3, 4, 1],
'weight': [0.5, 1.0, 0.75, 0.25]
})
# 创建图
G = nx.from_pandas_edgelist(df,
source='source',
target='target',
edge_attr='weight')
# 带多个边属性
G = nx.from_pandas_edgelist(df,
source='source',
target='target',