与Networkx相比,图形工具出奇的慢

与Networkx相比,图形工具出奇的慢,第1张

与Networkx相比,图形工具出奇的慢

这里不足为奇。graph-tool通过将主循环卸载到C
++来实现更高的性能。如果所有主循环都在Python中,则没有任何优势。对于其他库,例如numpy,也是如此。

实现边缘快速添加的正确方法是让图形工具执行主循环。您生成的网络是一个简单的增长模型,可以通过调用以下工具在graph-tool中实现:

G = price_network(n, gamma=0, directed=False)

在我的计算机中,大约需要15毫秒,n = 5000。

另请注意,由于每次迭代时都会创建具有所有顶点的新列表,因此python代码的速度不必要地慢。一个更快的版本是:

from numpy.random import randintn = 5000G = Graph(directed=False)G.add_vertex(n)G.add_edge(0, 1)for i in range(2, n):    G.add_edge(i, randint(i))

对于更大的n值,一次而不是一个接一个地添加所有边会更快,即

from graph_tool.all import *from numpy.random import randintn = 5000G = Graph(directed=False)edges = [(0, 1)]for i in range(2, n):    edges.append((i, randint(i)))G.add_edge_list(edges)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5632307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存