python指数分布
时间: 2023-10-29 10:53:16 浏览: 80
Python指数分布可以通过使用公式或使用SciPy库中的stats.expon函数来计算概率密度和累积概率。
要计算概率密度,可以使用公式p = r*math.e**(-r*x) 或者使用stats.expon.pdf(x, scale=1/r),其中r是指数分布的参数,x是变量。你可以通过使用numpy.linspace函数生成一系列x值,然后计算对应的概率密度,并将x和概率密度值存储在两个列表中。最后,使用matplotlib.pyplot.plot函数将x和概率密度值绘制成图形。
要计算累积概率,可以使用stats.expon.cdf(x, scale=1/r)函数,其中x是变量。同样,你可以使用numpy.linspace函数生成一系列x值,然后计算对应的累积概率,并将x和累积概率值存储在两个列表中。最后,使用matplotlib.pyplot.plot函数将x和累积概率值绘制成图形。
下面是一个示例代码,演示了如何使用公式和SciPy库来计算指数分布的概率密度和累积概率,并将结果绘制成图形:
```
from scipy import stats
import math
import numpy as np
import matplotlib.pyplot as plt
r = 1/50000
# 计算概率密度
X = []
Y = []
for x in np.linspace(0, 1000000, 100000):
if x == 0:
continue
# 直接用公式算
# p = r*math.e**(-r*x)
# 用scipy.stats.expon工具算, 注意这里scale参数是标准差
p = stats.expon.pdf(x, scale=1/r)
X.append(x)
Y.append(p)
# 绘制概率密度图
plt.plot(X, Y)
plt.xlabel("间隔时间")
plt.ylabel("概率密度")
plt.show()
# 计算累积概率
X = []
Y = []
for x in np.linspace(0, 1000000, 100000):
if x == 0:
continue
# 用scipy.stats.expon工具算, 注意这里scale参数是标准差
p = stats.expon.cdf(x, scale=1/r)
X.append(x)
Y.append(p)
# 绘制累积概率图
plt.plot(X, Y)
plt.xlabel("间隔时间")
plt.ylabel("累积概率")
plt.show()
```
希望这个例子能够帮助你理解如何使用Python计算指数分布的概率密度和累积概率。