我正在使用包numpy和网络在python中创建网络。 事实:创建此图大约需要一个小时表格可adjacency容纳212,000行由于我是python的新手,所以我没有解释器执行多少优化(如果有的话)。无论如何,我认为错误在于实际在该行中创建图形:g = nx.from_numpy_matrix(mat, create_using=nx.DiGraph())我相信这是因为:我已经在没有该行的情况下运行了代码,而且速度非常快(最多10秒)我认为写作mat是O(nlgn),因为我们有n行,从数据库中读取(btree搜索)是O(lgn),写作mat是O(1)。我只是以为读取邻接矩阵需要O(n ^ 2)的时间。也许邻接表(在中作为dict的一个字典实现networkx)会更快。在那种情况下,没有人知道networkx中的加权图和邻接表吗?如果您需要更多信息,请与我联系,我们将不胜感激! 注意:为了将来:我怎么知道一个小时是否合理?
1 回答

POPMUISE
TA贡献1765条经验 获得超5个赞
我不确定将numpy矩阵转换为Di-Graph时为什么这样慢。请在下面尝试这种方法,看看是否有帮助。
def create_directed_graph(rows):
g = nx.DiGraph()
for row in rows:
curRow = row['r']
curCol = row['c']
weight = row['val']
g.add_edge(curRow,curCol,Weight=weight)
return g
添加回答
举报
0/150
提交
取消