我试图从现有的nx图G中删除节点,如果且仅当该图保持连接。最有效的方法是什么
例如,我删除节点5的尝试是:
node = 5
# make temporary copy
T = G.copy()
# remove node from copy
T.remove_node(node)
# replace G with T if the graph is connected
if nx.is_connected(T):
G = T
我只是在犹豫是否要创建副本来实现这一点,因为我正在迭代地从大型图中删除节点。有更好的方法吗
Tags:
您可能忽略了Graph.copy()可用的单个参数,即
Graph.copy(as_view = False)
。此参数的作用是提供“原始结构的副本,而不需要任何内存来复制信息”。您可以在模拟结构上执行删除操作,并在保持完全连接后,在真实结构上执行删除操作。如果您担心存储两个完整网络的内存阻塞,那么使用该参数可能是您的解决方案。如果没有,您需要在问题中提供更多细节和一些可复制的代码相关问题 更多 >
编程相关推荐