Networkx移除度数≤2节点出现异常:结果不符预期?
问题原因解析
先理清楚核心逻辑:你说要移除度数≤2的节点,对照初始的度数统计来看:
- player1、player3的度数是4,明显大于2,属于你该保留的节点
- 剩下的player2、4、5、6、7,度数分别是2、2、0、1、1,全符合「度数≤2」的条件,所以被放进
nodes_to_remove是完全正确的,和你得到的结果一致。
你误以为要移除的是player1和3,本质是搞反了筛选条件——如果你的需求是移除度数≥2的节点,那才会选中player1、2、3、4,但这和你最初说的需求不匹配。
另外,移除节点后player1和3的度数变成1,是因为他们原来的其他邻居(比如player2、4这些)都被删掉了,现在只剩下彼此之间的一条边,所以度数自然降到1,这是NetworkX删除节点后自动更新节点关系的正常现象。
内容的提问来源于stack exchange,提问作者Louis
相关产品推荐
相关产品推荐

