首页 > 解决方案 > 我的图表是否太大而无法实际使用?

问题描述

我在 networkx 中有一个有向图,有 ~8M 节点 ~30M 边。我的目标是删除这些节点的一个子集(~1M)并在剩余的图上执行计算,根据关系向节点和边添加属性。

然而,似乎即使执行删除节点的第一步也是不可能的。我尝试过的:

目标:删除所有不是节点“a”的后代的节点。

nodesToKeep = nx.descendants(G, 'a')挂墙时间:40 秒

nodesToDrop = [n for n in G if n not in set(nodesToKeep )] 挂壁时间:不清楚,>24h

然后我会使用删除节点G.remove_nodes_from(nodesToDrop)

问题在于,即使是列表理解 nodesToDrop 的运行时间本身也非常高。我在约 24 小时后终止了该过程。

将 networkx 用于这种大小的图通常是不现实的吗?还是我应该采取其他方法?

非常感谢任何可能引导我走向正确方向的回应。

标签: pythonnetworkx

解决方案


推荐阅读