task 7 随机抽样
numpy.random模块里有一些常用概率分布的抽样函数,比如二项分布、正态分布、泊松分布
设定随机种子
numpy.random.seed()
如果不设置,则系统根据时间来自己选择这个值
二项分布
numpy.random.binomial(n, p, size=None)
- 抽样函数,返回采样值
size
表示采样次数
scipy.stats.binom.rvs(n, p, size)
- 同上,返回一个numpy.ndarray
scipy.stats.binom.pmf(x, n, p)
- 概率密度函数,相当于计算x的对应的概率
scipy.stats.binom.stats(n, p, loc=0, moments='mv')
- 计算指定参数分布的期望和方差
泊松分布
-
numpy.random.poisson(lam=1, size=None)
- 抽样函数,指定参数和数量返回抽样值,
lam
表示事件发生的速率
- 抽样函数,指定参数和数量返回抽样值,
-
scipy.stats.poisson.pmf(x, lam)
- 概率密度函数
超几何分布
N个里面有M个次品,从N个里抽取n个,n个里面有次品个数k的分布,参数为N,M,n
p ( k , M , n , N ) = C M k C N − M n − k C N M p(k,M,n,N)=\frac{C_M^kC_{N-M}^{n-k}}{C_N^M} p(k,M,n,N)=CNMCMkCN−Mn−k
numpy.random.hypergeometric(ngood, nbad, nsample, size=None)
scipy.stats.hypergeom.pmf(k, M, n, N)
- 概率密度函数
均匀分布
numpy.random.uniform(low, high, size)
numpy.random.rand(0, d1, ..., dn)
- Random values from a uniform distribution over
[0, 1)
in a given shape.
- Random values from a uniform distribution over
numpy.random.randint(low, high=None, size=None, dtype='l')
- Return random integers from
low
(inclusive) tohigh
(exclusive).
- Return random integers from
正态分布
numpy.random.randn(d0, d1, ..., dn)
- Return a sample (or samples) from the “standard normal” distribution.
numpy.random.normal(loc=0.0, scale=1.0, size=None)
- Draw random samples from a normal (Gaussian) distribution.
指数分布
numpy.random.exponential(scale=1, size=None)
- Draw samples from an exponential distribution.
scipy.stats.expon.cdf(x, scale)
- 累积概率密度函数
随机从序列中获取元素
numpy.random.choice(a, size=None, replace=True, p=None)
- Generates a random sample from a given 1-D array.
对数据集进行洗牌
-
numpy.random.shuffle(x)
- Modify a sequence in-place by shuffling its contents.
- 对
x
进行重排序,如果x
为多维数组,只沿第 0 轴洗牌,直接改变原来的数组x,输出为None。
-
numpy.random.permutation(x)
- Randomly permute a sequence, or return a permuted range.
permutation()
函数的作用与shuffle()
函数相同,可以打乱第0轴的数据,但是它不会改变原来的数组x。