如何在Python中查找概率分布

  • Post category:Python

查找Python中的概率分布

Python 中常用的概率分布包括正态分布、泊松分布、二项分布、指数分布等等。这些概率分布在统计学和机器学习等领域中得到广泛使用。Python 中通常使用 SciPy 中的子模块 stats 来实现概率分布的查找和分析。

步骤

以下是在 Python 中查找概率分布的基本步骤:

  1. 导入所需的包

在使用查找概率分布的工具时,需要导入 SciPy 的 stats 子模块和其他所需的包。可以使用以下语句导入:

from scipy import stats
import numpy as np
  1. 查找概率分布

要查找概率分布,可以使用 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)
  1. 获取有关概率分布的信息

要获取有关分布的信息,可以使用 stats 子模块中的描述性统计函数。以下是其中一些最常用的函数:

  • mean:计算分布的平均值
  • median:计算分布的中位数
  • std:计算分布的标准差
  • var:计算分布的方差
  • pdf:计算分布的概率密度函数
  • cdf:计算分布的累积分布函数

例如,在上面所示的正态分布示例中,要计算正态分布的概率密度函数,可以使用以下代码:

normal_dist.pdf(0.1)
  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)

运行该示例,将输出符合二项分布的随机数。