📜  Python中的 sympy.stats.FiniteRV()函数(1)

📅  最后修改于: 2023-12-03 15:19:26.422000             🧑  作者: Mango

Python中的 sympy.stats.FiniteRV()函数

sympy.stats.FiniteRV()函数是一个用于表示有限种可能取值的随机变量的符号类。它可以用于正式定义离散随机变量,例如掷骰子的结果、扑克牌的面值等。

函数定义
sympy.stats.FiniteRV(name, density_dict)
  • name:随机变量的名称,通常为一个字符串。
  • density_dict:一个字典,包含随机变量的各种取值和对应的概率密度。
使用示例

下面的示例展示了如何使用sympy.stats.FiniteRV()函数来定义一枚六面骰子的随机变量:

import sympy.stats as ss

dice = ss.FiniteRV('dice', {1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6})

在这个例子中,我们首先导入了sympy.stats模块,并定义了名为dice的随机变量。随机变量的名称为字符串'dice',而概率密度字典则包含了每个面的取值和概率。

下面的示例展示了如何使用定义好的随机变量进行各种统计计算:

import sympy.stats as ss

dice = ss.FiniteRV('dice', {1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6})

# 计算期望值
expectation = ss.E(dice)
print(expectation)  # 7/2

# 计算方差
variance = ss.variance(dice)
print(variance)  # 35/12

# 计算概率质量函数
pmf = ss.P(dice)
print(pmf)  # {1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6}

# 计算累积分布函数
cdf = ss.cdf(dice)
print(cdf)  # {1: 1/6, 2: 1/3, 3: 1/2, 4: 2/3, 5: 5/6, 6: 1}

# 生成随机样本
samples = ss.rvs(dice, size=10)
print(samples)  # [2, 2, 5, 3, 5, 1, 4, 4, 6, 4]

在这个例子中,我们首先构建了一个名为dice的随机变量。接着,我们使用sympy.stats模块提供的各种函数来计算该随机变量的期望、方差、概率质量函数、累积分布函数以及生成随机样本等。