如何以python列表或numpy数组的形式形成邻接表?
How to form adjacency list in the form of python list or numpy array?
networkx 的 generate_adjlist() 模块的输出有点奇怪,我试图以列表或 numpy 数组的形式获取图形的邻接列表。怎么做?任何提示表示赞赏。谢谢
G = nx.lollipop_graph(4, 3)
for line in nx.generate_adjlist(G):
print(line)
[0]
0 1 2 3
1 2 3
2 3
3 4
4 5
5 6
6
nx.generate_adjlist
returns 图中的一条线,采用邻接表格式。您可以使用以下命令从结果生成嵌套列表:
G = nx.lollipop_graph(4, 3)
np.array(list(nx.generate_adjlist(G)))
# array(['0 1 2 3', '1 2 3', '2 3', '3 4', '4 5', '5 6', '6'], dtype='<U7')
Numpy 数组适用于同类数据结构,即适用于内部列表大小相同的列表。如果您尝试从以下内容构建一个数组,您会看到您得到了一个列表数组。你可以做的是从结果构建一个嵌套列表:
list(map(str.split, nx.generate_adjlist(G)))
[['0', '1', '2', '3'],
['1', '2', '3'],
['2', '3'],
['3', '4'],
['4', '5'],
['5', '6'],
['6']]
根据评论中提到的问题,我们可以获得一个枚举字典(请注意,有效的列表将以相同的方式索引):
dict(enumerate(map(str.split, nx.generate_adjlist(G))))
{0: ['0', '1', '2', '3'],
1: ['1', '2', '3'],
2: ['2', '3'],
3: ['3', '4'],
4: ['4', '5'],
5: ['5', '6'],
6: ['6']}
networkx 的 generate_adjlist() 模块的输出有点奇怪,我试图以列表或 numpy 数组的形式获取图形的邻接列表。怎么做?任何提示表示赞赏。谢谢
G = nx.lollipop_graph(4, 3)
for line in nx.generate_adjlist(G):
print(line)
[0]
0 1 2 3
1 2 3
2 3
3 4
4 5
5 6
6
nx.generate_adjlist
returns 图中的一条线,采用邻接表格式。您可以使用以下命令从结果生成嵌套列表:
G = nx.lollipop_graph(4, 3)
np.array(list(nx.generate_adjlist(G)))
# array(['0 1 2 3', '1 2 3', '2 3', '3 4', '4 5', '5 6', '6'], dtype='<U7')
Numpy 数组适用于同类数据结构,即适用于内部列表大小相同的列表。如果您尝试从以下内容构建一个数组,您会看到您得到了一个列表数组。你可以做的是从结果构建一个嵌套列表:
list(map(str.split, nx.generate_adjlist(G)))
[['0', '1', '2', '3'],
['1', '2', '3'],
['2', '3'],
['3', '4'],
['4', '5'],
['5', '6'],
['6']]
根据评论中提到的问题,我们可以获得一个枚举字典(请注意,有效的列表将以相同的方式索引):
dict(enumerate(map(str.split, nx.generate_adjlist(G))))
{0: ['0', '1', '2', '3'],
1: ['1', '2', '3'],
2: ['2', '3'],
3: ['3', '4'],
4: ['4', '5'],
5: ['5', '6'],
6: ['6']}