python 指数分布
时间: 2023-11-11 08:00:38 浏览: 186
指数分布是一种连续概率分布,通常用于描述事件发生的时间间隔。在 Python 中,可以使用 SciPy 库中的 expon 模块来生成指数分布的随机变量。下面是一个简单的例子:
```python
from scipy.stats import expon
# 生成一个均值为 2 的指数分布随机变量
rv = expon(scale=2)
# 生成 10 个随机样本
samples = rv.rvs(size=10)
print(samples)
```
输出:
```
[1.238 0.187 0.882 0.123 1.764 0.303 0.684 1.174 0.186 0.202]
```
这里使用 `scale` 参数指定了指数分布的均值,然后使用 `rvs` 方法生成了 10 个随机样本。
相关问题
python指数分布
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计算指数分布的概率密度和累积概率。
python 指数分布随机数
可以使用Python中的random模块来生成指数分布随机数。具体方法如下:
```python
import random
import numpy as np
import matplotlib.pyplot as plt
# 生成指数分布随机数
beta = 2 # 指数分布的参数
n = 10000 # 生成的随机数个数
x = [random.expovariate(1/beta) for i in range(n)]
# 绘制直方图
count, bins, ignored = plt.hist(x, 50, density=True)
plt.plot(bins, beta*np.exp(-beta*bins), linewidth=2, color='r')
plt.show()
```
上述代码中,我们使用了random.expovariate()函数来生成指数分布随机数,其中1/beta为指数分布的参数。然后使用matplotlib库绘制了生成的随机数的直方图,并将其与指数分布的概率密度函数进行了比较。
阅读全文