numpy的随机数操作——random模块

其随机数生成方式利用的是梅森旋转算法生成的伪随机数。相比于python标准库的random模块,numpy中的包含更多的分布以供选择。

随机数生成器

  1. 生成器种子设置
seed(self, seed=None)
  1. 生成器内部状态
get_state()
  1. 生成器内部状态设置:
set_state(state)

参数:state :——有两种数据类型可选{tuple(str, ndarray of 624 uints, int, int, float), dict},具体不做描述。

各种分布

当需要其中分布对应的标准分布时,用 “standard_对应的分布名称即可”

1. beta 分布:

a,b分布为分布的参数,size为一元组。

beta(a, b, size=None)

2. 二项分布:

binomial(n, p, size=None)

3. 卡方分布:

chisquare(df, size=None)

4. 狄利克雷分布:

dirichlet(alpha, size=None)

5. 指数分布:

f(x;1β)=1βexp⁡(−xβ)f(x; \frac{1}{\beta}) = \frac{1}{\beta} \exp(-\frac{x}{\beta})f(x;β1)=β1exp(βx)

exponential(scale=1.0, size=None)

6. F分布:

f(dfnum, dfden, size=None)

7. 伽马分布:

gamma(shape, scale=1.0, size=None)

8. 几何分布:

geometric(p, size=None)

9. Gumbel 分布:

gumbel(loc=0.0, scale=1.0, size=None)

10. 超几何分布:

hypergeometric(ngood, nbad, nsample, size=None)

11. 拉普拉斯分布:

laplace(loc=0.0, scale=1.0, size=None)

12. Logistic分布:

logistic(loc=0.0, scale=1.0, size=None)

13. 对数正态分布:

lognormal(mean=0.0, sigma=1.0, size=None)

14. 对数级数分布:

logseries(p, size=None)

15. 多项式分布:

参数:n —— 实验次数
pvals —— 浮点数序列,长度为 p,第 p 个不同输出对应的概率,这些序列之和必须为1(通常假定最后一个 p 为剩余所有元素的概率,但需满足和小于等于 1 )。

multinomial(n, pvals, size=None)

16. 多元正态分布:

参数:mean —— 若为一维数组,长度为 N;
cov —— 协方差,则应为 2维数组,长度 N*N;
check_valid ——{ ‘warn’, ‘raise’, ‘ignore’ }:进行判断,当协方差矩阵为非正定时;

multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-8)

16. 负二项分布:

negative_binomial(n, p, size=None)

17. 非中心卡方分布:

noncentral_chisquare(df, nonc, size=None)

18. 非中心 F 分布:

noncentral_f(dfnum, dfden, nonc, size=None)

19. 正态分布:

normal(loc=0.0, scale=1.0, size=None)

20. Lomax 分布:

pareto(a, size=None)

21. 泊松分布:

poisson(lam=1.0, size=None)

22. power 分布:

power(a, size=None)

23. 瑞利分布:

rayleigh(scale=1.0, size=None)

24. 标准 t 分布:

standard_t(df, size=None)

25. 矩形分布:

参数:mode——尖峰所在位置,在 left 和 right 之间;

triangular(left, mode, right, size=None)

26. 均匀分布:

uniform(low=0.0, high=1.0, size=None)

27. von Mises 分布:

vonmises(mu, kappa, size=None)

28. Wald分布(反正态分布):

wald(mean, scale, size=None)

29. weibull分布:

weibull(a, size=None)

30. Zipf分布:

zipf(a, size=None)

操作

1. 从以供一维数组中随机选择一个样本:

choice(a, size=None, replace=True, p=None)

参数:
a —— 如果是数组,则从数组元素中随机选取一个;若为一个整型,则从数组 np.arange(a)中随机选择一个;
replace —— 布尔值,样本是否被替代;
p —— 一维数组,是 a 中每个元素被选择的概率;若为 None,则 a 中每个元素被选择的概率都相同;

2. 对一个序列进行随机交换,顺序重排:

permutation(x)

参数:x —— 若 x 为整数,则对 np.arange(x) 进行重排;若为数组,则直接重排(copy后重排);

3. 随机生成一个任意维的随机数序列(从均匀分布 [0,1)中获得)

:其中 dn 为第 n 维的数目;

rand(d0, d1, ..., dn)

4. 获取一个随机整数分布(从一个半开的离散分布 [low,high)中获得):

randint(low, high=None, size=None, dtype=int)

5. 随机生成一个任意维的随机数序列(从标准正态分布中获得):

其中 dn 为第 n 维的数目;

randn(d0, d1, ..., dn)

6. 对一个序列内部元素重排:x 必须为数组

shuffle(x)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值