小数据集上的 Python networkx 内存错误

标签 python networkx

我有一个相对较小的数据集,由约 100k 条边和约 7000 个节点组成。我正在尝试使用两种算法来查找数据集中的社区。我添加了边缘并继续运行此处实现的算法:http://perso.crans.org/aynaud/communities/#as-python-module

数据基本如下:

节点1,节点2

节点1连接到节点2,并且该图是无向的。

但是程序只运行了一会儿就给我一个内存错误。我知道它有效,因为我在一个小数据集上测试了它并且它工作正常,但它给了我一个内存错误。我对这些算法了解不多,但我的印象是我拥有的数据集非常小,而且我在我的个人家用计算机上运行它。这只是实现本身的问题还是由于我的机器的限制?

除了在具有更多内存的服务器上运行它之外,你们中的任何人是否知道如何让它工作(即另一个软件或算法)?

谢谢!

回溯:

Traceback (most recent call last):
  File "<wingdb_compile>", line 65, in <module>
  File "C:\Python27\lib\site-packages\networkx\drawing\layout.py", line 242, in fruchterman_reingold_layout
    pos=_fruchterman_reingold(A,dim,pos_arr,fixed,iterations)
  File "C:\Python27\lib\site-packages\networkx\drawing\layout.py", line 280, in _fruchterman_reingold
    delta = np.zeros((pos.shape[0],pos.shape[0],pos.shape[1]),dtype=A.dtype)
MemoryError

最佳答案

我意识到这是一个老问题,但 NetworkX 仍然存在内存问题,尤其是在处理社区等算法时。

查看 graph-tool 。它是一个 python 包,其性能比 NetworkX

快得多

我不隶属于graph-tool。它为我解决了在大型网络上运行算法时的内存问题。

尝试将您的节点转换为整数(如果您尚未这样做)。我发现标记为字符串的节点会占用大量内存。

祝大家交流愉快

关于小数据集上的 Python networkx 内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9894839/

相关文章:

python - Spring 图形布局,在 networkx 中具有一些预定义的位置

python - 如何从节点列表中获取对应的边

Python - 未引发异常

python - 无法使用 cv2.imread 加载图像

python - 循环df并创建新的df

python - NetworkX:边和节点属性的子图同构

python - NetworkX 节点标签相对位置

python - 如何使 Networkx 生成带有排序节点的 GML 文件

python - 如何使用 Django 模型创建组合框?

python - 如何制作带有\t符号的表格?