2017-08-02 13 views
0

我使用networkx的read_edgelist函数从文件(500Mb),G(节点= 2.3M,边缘= 33M)读取图形的边缘,它使用机器的整个内存并且在没有找到更多内存加载整个图形。 有没有办法像稀疏图解决方案或使用其他库一样处理这个问题?有什么办法来处理python中的networkx的read_edgelist中的内存使用情况?

+0

要直接回答你的问题:是的,有些方法可以使用你提到的任何一种方法来处理这个问题。如果您想要关于特定技术的建议,那就超出了SO的范围。 –

回答

0

NetworkX使用稀疏表示;和read_edgelist逐行读取文件(即它不会一次加载整个文件)。

所以如果NetworkX使用太多的内存,这意味着这实际上是在内存中表示整个图形所需要的。

一个可能的解决方案是在将文件送入NetworkX之前自行读取文件并放弃尽可能多的边缘。

相关问题