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

已知x和对应概率P(x)时如何使用Python计算标准差

离散概率分布标准差的Python实现

已知数据

你提供的x取值和对应概率如下:

xP(x)
-20000.1
-10000.1
00.2
10000.2
20000.3
30000.1

实现逻辑

沿用你提到的计算逻辑:

方差公式:Var(x) = E[x²] - (E[x])²
标准差为方差的算术平方根
其中E[x]是x的期望,等于所有x与对应P(x)乘积的总和;E[x²]是x平方的期望,等于所有x²与对应P(x)乘积的总和。

实现代码

方法1:纯Python实现(无需安装第三方库)

# 定义x取值和对应概率
x_values = [-2000, -1000, 0, 1000, 2000, 3000]
p_values = [0.1, 0.1, 0.2, 0.2, 0.3, 0.1]

# 计算期望E[x]
e_x = sum(x * p for x, p in zip(x_values, p_values))
# 计算x平方的期望E[x²]
e_x2 = sum(x**2 * p for x, p in zip(x_values, p_values))
# 计算方差
var_x = e_x2 - e_x ** 2
# 计算标准差
std_x = var_x ** 0.5

print(f"期望E[x]:{e_x}")
print(f"方差Var(x):{var_x}")
print(f"标准差:{std_x:.2f}")

运行输出结果:

期望E[x]:800.0
方差Var(x):2160000.0
标准差:1469.69

方法2:基于NumPy实现(适合大规模数据计算)

import numpy as np

x_values = np.array([-2000, -1000, 0, 1000, 2000, 3000])
p_values = np.array([0.1, 0.1, 0.2, 0.2, 0.3, 0.1])

e_x = np.sum(x_values * p_values)
e_x2 = np.sum(x_values ** 2 * p_values)
var_x = e_x2 - e_x ** 2
std_x = np.sqrt(var_x)

print(f"期望E[x]:{e_x}")
print(f"方差Var(x):{var_x}")
print(f"标准差:{std_x:.2f}")

运行结果和纯Python实现完全一致。

内容的提问来源于stack exchange,提问作者V R Babu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:36:07