内存错误在NetworkX中创建大图

问题描述

我已决定使用Python处理图形。我使用NetworkX加载边缘列表以构建图形。当我尝试使用nx.read_edgelist加载边缘时,我收到了MemoryError

该图有400万个节点和3,400万条边,我的电脑有12GB的RAM。可以将该图加载到12GB吗?有什么最佳解决方案吗?

解决方法

NetworkX使用字典来实现图形数据结构。每个边缘至少使用100个字节的内存。因此,如果边缘有3400万个,则可能需要超过40 GB。

一种解决方案是使用云计算并根据需要扩展内存。

NetworkX的替代方法是graph-tool,它是一个Python模块,可在C ++中实现核心数据结构和算法。

另请参见