获取 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:
但只有在您的应用程序不需要它们时才这样做。
我正在从一个 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:
但只有在您的应用程序不需要它们时才这样做。