k_core#

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

返回图 G 的 k-核。

k-核是一个包含度数为 k 或更多的节点的最大子图。

Parameters:
GNetworkX 图

一个图或有向图

kint, 可选

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

core_number字典, 可选

预先计算的图 G 的核数。

Returns:
GNetworkX 图

k-核子图

Raises:
NetworkXNotImplemented

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

See also

core_number

Notes

主核是具有最大核数的 k 的核。

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

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

References

[1]

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

Examples

>>> 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))