获取 NetworkX 隔离物

Get NetworkX isolates

我正在从一个 numpy 数组创建一个图表,其中数组元素的值代表权重。请参阅下面的代码。这张图显然有一个孤立点。但是为什么获取隔离的代码没有给我一个空列表。

import numpy

A=numpy.matrix([[3,0,1],[0,2,0], [0,0,5]])

G=nx.from_numpy_matrix(A, parallel_edges=False)


matrix([[3, 0, 1],
    [0, 2, 0],
    [0, 0, 5]])



nx.draw(G, node_color = 'green', node_size = 50, with_labels=False)

plt.show()

nx.degree(G)

4

nx.degree(G)

DegreeView({0: 3, 1: 2, 2: 3})

list(nx.isolates(G))

[]

根据 networkx documentation,'isolate' 是度数为 0 的节点。

在你的例子中,节点本身有一条边。所以它没有度数 0.

解决此问题的一个方法是从图表中删除 self-edges:

但只有在您的应用程序不需要它们时才这样做。