您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

networkx DiGraph属性错误self._succ

networkx DiGraph属性错误self._succ

我相信您的问题类似于AttributeError中的问题:“ DiGraph”对象没有属性“_node”

那里的问题是要研究的图形是在networkx 1.x中创建的,然后进行了腌制。然后,该图具有networkx 1.x对象具有的属性。我相信这也发生在您身上。

现在,您已经打开它,并且正在将networkx 2.x中的工具应用到该图。但是这些工具假定它是一个networkx 2.x DiGraph,所有属性都应在2.x DiGraph中。特别是,它期望_succ为1.x DiGraph没有的节点定义。

因此,我认为有两种方法可行:

删除networkx 2.x,并替换为networkx 1.11。

这不是最佳选择,因为networkx 2.x更强大。同样,在2.x和1.x中都可以工作的代码(遵循您提到的迁移指南)将在1.x中效率较低(例如,在某些情况下1.x代码正在使用列表和2.x代码正在使用生成器)。

将1.x图形转换为2.x图形(由于我的计算机目前没有1.x,因此我无法轻松进行测试- 如果有人尝试此操作,请在评论中注明是否有效,以及您的网络是否加权):

#you need commands here to load the 1.x graph G
#
import networkx as nx   #networkx 2.0
H = nx.DiGraph() #or Graph for someone else with this problem.

H.add_nodes_from(G.nodes(data=True))
H.add_edges_from(G.edges(data=True))

data=True用于确保任何边缘/节点的权重将被保留。 H现在是networkx 2.x DiGraph,其边缘和节点具有任何属性G。networkx 2.x命令应该可以在其上运行。

联系其他研究人员,并警告他/她该代码示例现在已过时。

dotnet 2022/1/1 18:36:36 有344人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶