如何在 Python scipy 中的伽玛概率密度函数中获得特定 x 值的概率?

How can I obtain a probability at specific x value in a gamma probability density function in Python scipy?

我可以通过 python

中的以下内容获得 gamma 分布中 x 的概率
import numpy as np 
from scipy.stats import gamma

# Gamma distribution
print(gamma.pdf(x=2, a=2, scale=1, loc=0)) # 0.27067

但是,每次我想获得特定 x 的概率时,这都需要创建一个新的伽玛分布。

我喜欢创建一个指定的伽玛分布my_gamma_dist,然后一次又一次地从中抽取特定的 x 值。

import numpy as np 
from scipy.stats import gamma

my_gamma_dist = gamma.pdf(x, a=2, scale=1, loc=0)

my_gamma_dist.x = 2 # AttributeError: 'numpy.ndarray' object has no attribute 'x'
print(my_gamma_dist(x=2)) # TypeError: 'numpy.ndarray' object is not callable

我已经查看了文档,但我仍然不清楚。

您可以定义分布,然后在您要查找的值上调用 .pdf 方法,即:

from scipy.stats import gamma

g = gamma(a=2, scale=1, loc=0)

x=2
g.pdf(x)
0.2706705664732254

x=3
g.pdf(x)
0.14936120510359185

# Or pass a list of values to evaluate
g.pdf([2,3])
array([0.27067057, 0.14936121])