python如何计算正态分布值

python如何计算正态分布值

作者:Elara发布时间:2026-01-06阅读时长:0 分钟阅读次数:17

用户关注问题

Q
如何使用Python计算正态分布的概率密度函数值?

我想用Python来计算某个特定点的正态分布概率密度函数(PDF)值,应该怎样操作?

A

利用SciPy库中的norm.pdf函数计算PDF值

可以使用SciPy库中的stats模块提供的norm.pdf函数来计算正态分布的概率密度函数值。通过指定均值(loc)和标准差(scale),并传入目标点的数值,函数会返回对应的PDF值。例如:

from scipy.stats import norm

mean = 0  # 均值
std_dev = 1  # 标准差
x = 1.5  # 目标点
pdf_value = norm.pdf(x, loc=mean, scale=std_dev)
print(pdf_value)
Q
怎样用Python计算正态分布的累积分布函数(CDF)值?

我需要求某个数值在指定正态分布下的累积概率,Python有什么方法可以做到?

A

利用SciPy库中的norm.cdf函数计算累积分布函数值

可以使用SciPy库中的stats.norm.cdf函数来计算正态分布在某个点的累积分布函数值。该函数接受数据点、均值和标准差作为参数,返回该点左侧的累计概率。示例如下:

from scipy.stats import norm

mean = 0
std_dev = 1
x = 1.5
cdf_value = norm.cdf(x, loc=mean, scale=std_dev)
print(cdf_value)
Q
是否能用Python自定义函数计算正态分布的概率值?

除了调用库函数,有没有办法用Python代码手动计算正态分布的概率密度函数?

A

通过数学公式自定义正态分布概率密度函数

可以根据正态分布概率密度函数的数学公式,自行实现计算函数。其表达式为:

( f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} )

以下是对应的Python代码示例:

import math

def normal_pdf(x, mean, std_dev):
    coeff = 1 / (std_dev * math.sqrt(2 * math.pi))
    exponent = -((x - mean) ** 2) / (2 * std_dev ** 2)
    return coeff * math.exp(exponent)

# 调用示例
result = normal_pdf(1.5, 0, 1)
print(result)