generalized_degree#
- generalized_degree(G, nodes=None)[source]#
计算节点的广义度。
对于每个节点,广义度显示该节点连接了多少条具有给定三角形重数的边。边的三角形重数是该边参与的三角形数量。节点 \(i\) 的广义度可以写成向量 \(\mathbf{k}_i=(k_i^{(0)}, \dotsc, k_i^{(N-2)})\) ,其中 \(k_i^{(j)}\) 是连接到节点 \(i\) 并参与 \(j\) 个三角形的边的数量。
- Parameters:
- G图
- nodes节点容器,可选(默认=G中的所有节点)
计算容器中节点的广义度。
- Returns:
- outCounter,或 Counter 的字典
指定节点的广义度。Counter 按边的三角形重数键入。
Notes
自环被忽略。
在一个 N 个节点的网络中,一条边可以具有的最高三角形重数是 N-2。
返回值不包括没有特定三角形重数的边的
zero
条目。节点 \(i\) 连接的三角形数量可以从广义度 \(\mathbf{k}_i=(k_i^{(0)}, \dotsc, k_i^{(N-2)})\) 恢复为 \((k_i^{(1)}+2k_i^{(2)}+\dotsc +(N-2)k_i^{(N-2)})/2\) 。
References
[1]V. Zlatić, D. Garlaschelli 和 G. Caldarelli 的“具有任意边重数的网络”,EPL(欧洲物理快报), 第 97 卷,第 2 期(2012 年)。 https://iopscience.iop.org/article/10.1209/0295-5075/97/28005
Examples
>>> G = nx.complete_graph(5) >>> print(nx.generalized_degree(G, 0)) Counter({3: 4}) >>> print(nx.generalized_degree(G)) {0: Counter({3: 4}), 1: Counter({3: 4}), 2: Counter({3: 4}), 3: Counter({3: 4}), 4: Counter({3: 4})}
要恢复连接到节点的三角形数量:
>>> k1 = nx.generalized_degree(G, 0) >>> sum([k * v for k, v in k1.items()]) / 2 == nx.triangles(G, 0) True
Additional backends implement this function
graphblas : OpenMP-enabled sparse linear algebra backend.