gpt4 book ai didi

python - python中的networkx用于删除节点

转载 作者:行者123 更新时间:2023-12-01 02:23:05 26 4
gpt4 key购买 nike

使用此代码:

$ out_deg = g.degree()
$ to_remove=[n for n in out_deg if out_deg[n] ==1]
$ g.remove_nodes_from(to_remove)

我收到以下错误:

Error:
File "C:\Anaconda3\lib\site-packages\networkx\classes\reportviews.py", line 434, in __getitem__
nbrs = self._succ[n]

KeyError: (0, 0)

我也在尝试这段代码:

$ g.remove_nodes_from(n for n in g.degree() if g.degree[n] == 1)

我得到了与上面相同的错误。

现在,使用以下代码:

$ g.remove_nodes_from(n for n , degree in g.degree() if degree == 1)

我收到以下错误:

Error:
File "C:\Anaconda3\lib\site-packages\networkx\classes\reportviews.py", line 443, in __iter__
for n in self._nodes:

RuntimeError: dictionary changed size during iteration

请帮忙

最佳答案

迭代删除networkx节点

您还可以尝试迭代使用 g.remove_node() 函数。

首先设置一个示例图表:

graph = nx.Graph()
graph.add_edges_from([(1,2),(3,1),(5,6)])
nx.draw(graph, with_labels=True)
plt.show()

Figure1

然后根据条件迭代删除节点

[graph.remove_node(k) for k,v in graph.degree().items() if v == 1]
nx.draw(graph, with_labels=True)
plt.show()

Figure2

关于python - python中的networkx用于删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com