NetworkX软件包生成的图形可处理的具有属性的最大节点和边数是多少?

问题描述

我正在用Python编写代码来分析具有节点和边缘属性的社交网络。当前,我正在使用NetworkX包来生成图形。使用此包可以生成的图形的大小(在节点数,边数方面)是否有限制?

我是使用Python编码社交网络问题的新手,最近遇到了另一个称为NetworKit的大型网络软件包,但是不确定NetworKit应该是哪种尺寸更好的选择,请您详细介绍一下性能功能上的差异在两个软件包之间?

感谢您的提前答复。

解决方法

我的建议:

  • 从Networkx开始,因为它有一个更大的社区,它得到了很好的维护和记录。。。。。。。。。。。。。。。。。。。。。。。。。。 的确,它的速度不是很快,但是对于大多数计算而言,它已经足够快了。如果您使用笔记本电脑运行计算,则在大型网络(> 10k节点和> 100k顶点)中进行密集型计算(例如sigma / omega小世界度量)可能会比较慢。

  • 如果需要加快速度,则可以轻松地将networKit合并到代码中,因为它可以很容易地与networkx和pandas集成,但是它的算法库要有限得多。

  • 比较一下自己: NetworkX算法:https://networkx.github.io/documentation/stable/reference/algorithms/index.html VS NetworKit算法:https://networkit.github.io/dev-docs/python_api/modules.html

,

使用此包可以生成的图形的大小(在节点数,边数方面)是否有限制?

不。没有限制。这完全取决于您的内存容量和大小。

您能否详细说明两个软件包在性能和功能上的区别?

我个人没有NetworkKit的经验,但是here(由Timothy Lin撰写),您可以在不同的工具(包括networkx和networkkit)上找到很好的基准分析。查看其结论部分:

关于人们应该学习哪些软件包的建议,我认为选择networkx仍然很重要,因为它可以通过广泛的工具和功能使网络科学变得非常容易获得。如果分析开始太慢(也许这就是您在这里的原因),那么我建议您看一下graph-tool或networkit,看看它们是否包含满足您需求的必要算法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...