栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

与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)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号