对scipy.stats内建分布进行采样

从参数 λ 为10的指数分布 p(x;λ)=λeλx 中采样随机变量。

import scipy.stats
import numpy as np

C=scipy.stats.expon(scale=10)
rv=[C.rvs() for _ in range(0,10)]
print("mean=%s std=%s" % (np.mean(rv),np.std(rv)))

运行10轮,结果为:

mean=12.613133068 std=12.4897861282

与参数为10的指数分布的真实均值10和真实标准差10相差不大。

如果运行100轮次,结果为:

mean=10.0596457864 std=9.24808510692

1000轮,

mean=10.2880745556 std=10.4062541415

10,000轮,

mean=10.1127994775 std=10.0806511412

100,000轮,

mean=9.93997859775 std=9.93892242967

1,000,000轮

mean=9.99178300676 std=9.9907763097

采样次数越多,越接近真实分布。

你可能感兴趣的:(python)