酸洗Networkx的edge_subgraph引发错误

时间:2020-09-08 20:43:12

标签: python networkx pickle

我正在尝试腌制networkx的edge_subgraph,但我无法正常工作。

这是代码

import networkx as nx
import pickle as pkl

G = nx.binomial_graph(100, 0.1)
significant_edges = [(u,v) for u,v in G.edges() if G.degree[u] == G.degree[v]]
subgraph = nx.edge_subgraph(G, significant_edges)

with open('subgraph.pkl', 'wb') as f:
    pkl.dump(subgraph, f)
AttributeError: Can't pickle local object 'show_edges.<locals>.<lambda>'

我也用节点子图检查了它,即subgraph,就行了。

可以通过初始化新图形来修复。

subgraph = nx.Graph(nx.edge_subgraph(G, significant_edges))

但是我想知道在networkx机制中是什么导致了此错误。此外,还有一种更优雅的方式可以避免此错误。

我怀疑这是由于以下事实造成的:该边缘支持图本身不是适当的图,并且与原始图紧密相关。也许有必要创建一个新图。

任何帮助表示感谢,谢谢。

0 个答案:

没有答案
相关问题