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

Python中如何从联合分布数组计算X变量的边缘概率分布

实现X变量边缘概率计算的Python方案

循环实现(匹配你当前的编写思路)

现有代码存在两处语法问题:

  • np.unique(X array) 需修改为直接传入X数组变量,例如np.unique(X)
  • for Ind in range(len(MargX): 缺少右括号,需修改为for Ind in range(len(MargX)):

循环体逻辑可通过numpy布尔索引实现取值筛选和求和,完整可运行示例如下:

import numpy as np

# 示例输入数据
X = np.array([3,7,4,7])
joint_prob = np.array([0.2, 0.3, 0.1, 0.4])

# 边缘概率计算逻辑
MargX = np.unique(X)
MargXp = np.zeros(len(MargX))

for Ind in range(len(MargX)):
    current_x_val = MargX[Ind]
    # 筛选X等于当前值的位置,对应概率求和
    MargXp[Ind] = joint_prob[X == current_x_val].sum()

# 运行结果:MargX为[3 4 7],MargXp为[0.2 0.1 0.7],符合计算预期

更高效的内置方法实现(无需手动编写循环)

利用numpy内置的np.unique和np.bincount可以直接完成分组求和,代码更简洁,处理大规模数组时效率更高:

import numpy as np

X = np.array([3,7,4,7])
joint_prob = np.array([0.2, 0.3, 0.1, 0.4])

MargX, inverse_idx = np.unique(X, return_inverse=True)
MargXp = np.bincount(inverse_idx, weights=joint_prob)

后续需要计算Y变量的边缘概率时,只需将上述代码中的X数组替换为Y数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:48:04