You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于NetworkX有向图计算入度与出度分布?

计算有向图的入度(in_degree)和出度(out_degree)分布

你的思路完全没问题,对于有向图来说,NetworkX已经帮我们分好了入度和出度的获取方法,只需要把原来的nx.degree替换成对应的入度/出度方法就可以了,和你计算总degree分布的逻辑完全一致:

1. 计算入度分布

NetworkX的nx.in_degree(G)方法会返回一个包含所有节点入度的字典,我们只需要提取它的values,再用numpy.histogram统计分布即可:

# 获取所有节点的入度值
in_degrees = list(nx.in_degree(G).values())
# 计算入度的分布
in_counts, in_bin_edges = np.histogram(in_degrees)

2. 计算出度分布

同理,用nx.out_degree(G)获取出度值,再做同样的直方图统计:

# 获取所有节点的出度值
out_degrees = list(nx.out_degree(G).values())
# 计算出度的分布
out_counts, out_bin_edges = np.histogram(out_degrees)

可选:更直观的度值计数(不用直方图)

如果你想直接看到每个具体度值对应的节点数量,而不是分箱后的结果,可以用collections.Counter来统计:

from collections import Counter

# 入度的具体计数
in_degree_counter = Counter(in_degrees)
# 出度的具体计数
out_degree_counter = Counter(out_degrees)

# 比如打印入度为3的节点数量
print(f"入度为3的节点数:{in_degree_counter.get(3, 0)}")

这样就能分别得到入度和出度的分布啦~

内容的提问来源于stack exchange,提问作者emax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:08:00