numpy——随机抽样

numpy.random.seed(seed=None)

用于指定随机数生成时所用算法开始的整数值,如果使用相同的 seed() 值,则每次生成的随机数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。

二项分布(binomial)

野外正在进行9(n=9)口石油勘探井的发掘工作,每一口井能够开发出油的概率是
0.1(p=0.1)。请问,最终所有的勘探井都勘探失败的概率?
0.9^9=0.387420489

np.random.seed(20201124)
n = 9
p = 0.1
size = 50000
x = np.random.binomial(n, p, size)
print(np.sum(x == 0) / size) # 0.3897
plt.hist(x)
plt.show()
s = stats.binom.pmf(range(10), n, p)
print(np.around(s, 3))

在这里插入图片描述

泊松分布(poisson)

假定某航空公司预定票处平均每小时接到42次订票电话,那么10分钟内恰好接到6次电话的概
率是多少?

lam = 42 / 6
size = 50000
x = np.random.poisson(lam, size)
print(np.sum(x == 6) / size) 
plt.hist(x)
plt.show()
x = stats.poisson.pmf(6, lam)
print(x) 
0.14900277967433773

在这里插入图片描述

超几何分布(hypergeometric)

一共20只动物里有7只是狗,抽取12只有3只狗的概率(无放回抽样)。

x = np.random.hypergeometric(ngood=7, nbad=13, nsample=12, size=size)
print(np.sum(x == 3) / size) # 0.198664
plt.hist(x, bins=8)
plt.show()
x = range(8)
s = stats.hypergeom.pmf(k=x, M=20, n=7, N=12)
print(np.round(s, 3))
[0.    0.004 0.048 0.199 0.358 0.286 0.095 0.01 ]

在这里插入图片描述

均匀分布(uniform)

a = 0
b = 100
size = 50000
x = np.random.uniform(a, b, size=size)
print(np.all(x >= 0)) 
print(np.all(x < 100)) 
y = (np.sum(x < 50) - np.sum(x < 10)) / size
print(y) 
plt.hist(x, bins=20)
plt.show()
a = stats.uniform.cdf(10, 0, 100)
b = stats.uniform.cdf(50, 0, 100)
print(b - a) 
True
True
0.4018
0.4

分配基本均匀
在这里插入图片描述

正态分布(randn)

np.random.seed(20200614)
size = 50000
x = np.random.randn(size)
plt.hist(x, bins=20)
plt.show()

在这里插入图片描述

指数分布(exponential)

np.random.seed(20200614)
lam = 7
size = 50000
x = np.random.exponential(1 / lam, size)
plt.hist(x, bins=20)
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值