我在尝试将一个networkx图形列表转换为Numpy数组时遇到了问题。
当列表中的所有图形都具有相同数量的节点时,似乎Numpy会自动将输入图形转换为数组,并且结果与我的期望不符。
以下是一个简短的复制脚本:
如果有人知道一个解决方案,让
以下是一个简短的复制脚本:
import numpy as np
import networkx as nx
g1 = nx.DiGraph([(1, 2), (2, 3)])
g2 = nx.DiGraph([(1, 2), (2, 3), (3, 4)])
g3 = nx.DiGraph([(1, 2), (2, 1), (1, 3)])
ok_numpy = np.array([g1, g2], dtype=object)
ko_numpy = np.array([g1, g3], dtype=object)
>> ok_numpy = [<networkx.classes.digraph.DiGraph object at ...>, <networkx.classes.digraph.DiGraph object at ...>]
>> ko_numpy = [[1 2 3], [1 2 3]] <-- Objects are not DiGraph() anymore, edges info is lost, dimension is 2 instead of 1
如果有人知道一个解决方案,让
ko_numpy
的行为与 ok_numpy
相同,那就太完美了。