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

Networkx计算有向图平均入度与出度结果相同的异常问询

问题分析与解决

你的代码语法上没有问题,但nx.info()返回的平均入度和出度数值相同是必然结果——因为对于任何有向图,总入度等于总出度,两者都等于图中的边数。当用总入度/总节点数、总出度/总节点数计算平均值时,结果自然一致。

你提到“平均入度应高于平均出度”,大概率是混淆了两种平均统计方式:

  • nx.info()的平均是所有节点的平均(包括没有入度/出度的孤立节点)
  • 你预期的可能是仅统计有入度/出度节点的平均

手动计算符合预期的平均值

如果要验证你预期的情况,可以用以下代码计算:

# 计算有入度节点的平均入度
in_degrees = G.in_degree()
total_in = sum(d for n, d in in_degrees)
nodes_with_in = sum(1 for n, d in in_degrees if d > 0)
avg_in = total_in / nodes_with_in if nodes_with_in > 0 else 0

# 计算有出度节点的平均出度
out_degrees = G.out_degree()
total_out = sum(d for n, d in out_degrees)
nodes_with_out = sum(1 for n, d in out_degrees if d > 0)
avg_out = total_out / nodes_with_out if nodes_with_out > 0 else 0

print(f"有入度节点的平均入度: {avg_in}")
print(f"有出度节点的平均出度: {avg_out}")

额外排查点

如果计算后还是不符合预期,可以检查数据:

  • 是否存在重复边:重复边会同时增加入度和出度的总和,不影响比例,但可能导致数值偏差
  • 是否有节点数据异常:比如Source和Target列是否有非整数、空值,或者导入时类型错误
  • 是否误将无向图当作有向图处理:你的代码已经指定create_using=nx.DiGraph,这部分没问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:35:20