k_core#

k_core(G, k=None, core_number=None)[source]#

返回图 G 的 k-核。

k-核是包含度为 k 或更大的节点的极大子图。

自 3.3 版本弃用: k_core 在 3.5 版本中将不再接受 MultiGraph 对象。

参数:
GNetworkX 图

一个图或有向图

k整型, 可选

核的阶数。如果未指定,则返回主核。

core_number字典, 可选

图 G 的预计算核数。

返回:
GNetworkX 图

k-核子图

引发:
NetworkXNotImplemented

k-核未定义用于多重图或带有自环的图。

另请参阅

core_number

注释

主核是 k 等于最大 core_number 的核。

对于有向图,节点度定义为入度 + 出度。

图、节点和边的属性被复制到子图中。

参考文献

[1]

一个 O(m) 复杂度的网络核心分解算法 Vladimir Batagelj 和 Matjaz Zaversnik, 2003. https://arxiv.org/abs/cs.DS/0310049

示例

>>> degrees = [0, 1, 2, 2, 2, 2, 3]
>>> H = nx.havel_hakimi_graph(degrees)
>>> H.degree
DegreeView({0: 1, 1: 2, 2: 2, 3: 2, 4: 2, 5: 3, 6: 0})
>>> nx.k_core(H).nodes
NodeView((1, 2, 3, 5))