查找Python中的概率分布
Python 中常用的概率分布包括正态分布、泊松分布、二项分布、指数分布等等。这些概率分布在统计学和机器学习等领域中得到广泛使用。Python 中通常使用 SciPy 中的子模块 stats 来实现概率分布的查找和分析。
步骤
以下是在 Python 中查找概率分布的基本步骤:
- 导入所需的包
在使用查找概率分布的工具时,需要导入 SciPy 的 stats 子模块和其他所需的包。可以使用以下语句导入:
from scipy import stats
import numpy as np
- 查找概率分布
要查找概率分布,可以使用 stats 子模块中的 various distributions 函数,例如 norm(正态分布),poisson(泊松分布),binom(二项分布),expon(指数分布)等,具体函数名如下:
- norm:正态分布
- poisson:泊松分布
- binom:二项分布
- expon:指数分布
这些函数使用的参数略有不同。以正态分布为例,当您知道均值和标准差时,可以使用以下代码创建正态分布对象:
mu, sigma = 0, 0.1 # 均值和标准差
normal_dist = stats.norm(mu, sigma)
可以针对任何分布重复此过程。例如,以下代码将创建一个泊松分布:
lam = 2 # 平均速率
poisson_dist = stats.poisson(lam)
- 获取有关概率分布的信息
要获取有关分布的信息,可以使用 stats 子模块中的描述性统计函数。以下是其中一些最常用的函数:
- mean:计算分布的平均值
- median:计算分布的中位数
- std:计算分布的标准差
- var:计算分布的方差
- pdf:计算分布的概率密度函数
- cdf:计算分布的累积分布函数
例如,在上面所示的正态分布示例中,要计算正态分布的概率密度函数,可以使用以下代码:
normal_dist.pdf(0.1)
- 生成样本
要生成符合特定分布的样本,可以使用各个分布类库的 rvs()
函数。例如,以下代码将生成符合正态分布的随机样本:
samples = normal_dist.rvs(100) # 创建一个包含 100 个符合正态分布的随机数的数组
示例
以下是两个示例,说明如何在 Python 中查找正态分布和二项分布:
示例 1:查找正态分布
from scipy import stats
# 创建一个均值为 0,标准差为 0.1 的正态分布
mu, sigma = 0, 0.1
normal_dist = stats.norm(mu, sigma)
# 创建一个包含 100 个符合正态分布的随机数的数组
samples = normal_dist.rvs(100)
# 打印数组
print(samples)
# 计算正态分布的概率密度函数
pdf = normal_dist.pdf(0.1)
print(pdf)
运行该示例,将输出符合正态分布的随机数和指定值的概率密度函数。
示例 2:查找二项分布
from scipy import stats
# 创建一个 n 为 100,p 为 0.5 的二项分布
n, p = 100, 0.5
binom_dist = stats.binom(n, p)
# 创建一个包含符合二项分布的随机数的数组
samples = binom_dist.rvs(100)
# 打印数组
print(samples)
运行该示例,将输出符合二项分布的随机数。