随机数据
'''
numpy.random.rand(d0, d1, ..., dn) 方法的作用为:
指定一个数组,并使用 [0, 1) 区间随机数据填充,这些数据均匀分布'''
import numpy as np

#TODO 1 [0, 1) 区间随机生成一个指定维度数组

a=np.random.rand(2, 5) #生成一个2行5列的二维数组,值随机在[0, 1) 区间.值类型float64
print(a)
'''
[[0.69972014 0.75348206 0.83342597 0.30635227 0.5588981 ]
 [0.28818975 0.61550448 0.96397808 0.42668209 0.38289549]]
'''
'''numpy.random.randn(d0, d1, ..., dn),与上面作用相同,
区别在于randn是从标准正态分布中返回一个或多个样本值'''
import numpy as np
a=np.random.randn(1, 10)
print(a)
'''
[[-2.46704604e-01 -4.37358303e-01 -3.20202210e-01  6.49797726e-01
   2.28593375e-02 -8.74794120e-01 -1.71152455e+00 -3.50333458e-01
   9.52973951e-04 -5.16972677e-01]]
'''
随机整数
'''randint(low, high, size, dtype) 方法将会生成 [low, high) 的随机整数。
注意这是一个半开半闭区间。
特点:随机整数,指定区间,指定个数,一维数组
'''
import numpy as np
a=np.random.randint(2,5,10) #在区间[2, 5)中生成10个一维数组整数,dtype默认int32
print(a)

'''
[3 3 2 4 2 2 2 4 4 3]
'''
随机浮点数
'''random_sample(size) 方法将会在 [0, 1) 区间内生成指定 size 的随机浮点数。
特点:随机浮点数,限定区间[0, 1),指定个数,一维数组
'''
import numpy as np
print(np.random.random_sample([10])) #生成10个浮点数,默认一维数组
'''
[0.23986903 0.37960337 0.26397901 0.53101139 0.15095358 0.5903787
 0.54044605 0.0206068  0.00409934 0.65887192]
'''
'''
与 numpy.random.random_sample 类似的方法还有:
numpy.random.random([size])
numpy.random.ranf([size])
numpy.random.sample([size])
'''
# print(np.random.random([10]))
# print(np.random.ranf([10]))
# print(np.random.sample([10]))
随机取样
'''choice(a, size, replace, p) 方法将会给定的数组里随机抽取几个值,该方法类似于随机抽样
a:数组矩阵,单个数字时,比如k,则为【x for x in range(k)】
size:输出数组中的个数,默认1
replace:布尔类型,输出的元素是否可重复,默认True
p:每个数字输出的概率,加起来必须等于1,默认None
'''
import numpy as np
print(np.random.choice(10, 8)) #区间【0,10)中随机返回8个元素,可重复。一维数组.
'''[5 5 9 8 3 6 2 3]'''
print(np.random.choice(10, 8,replace=False)) #区间【0,10)中随机返回5个不重复的元素,一维数组
'''[6 3 2 0 9 4 7 8]'''
aa_milne_arr=[1,2,3,4,]
#从指定数组,返回指定个数的元素,注意出现频率需要与指定数组一一对应,频率加起来必须为1
print(np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]))
'''[1 4 1 1 2]'''
概率密度分布
阅读一遍留下印象,用到时查阅官方文档即可。
'''
NumPy 还提供了大量的满足特定概率密度分布的样本生成方法。它们的使用方法和上面非常相似,这里就
numpy.random.beta(a,b,size):从 Beta 分布中生成随机数。
numpy.random.binomial(n, p, size):从二项分布中生成随机数。
numpy.random.chisquare(df,size):从卡方分布中生成随机数。
numpy.random.dirichlet(alpha,size):从 Dirichlet 分布中生成随机数。
numpy.random.exponential(scale,size):从指数分布中生成随机数。
numpy.random.f(dfnum,dfden,size):从 F 分布中生成随机数。
numpy.random.gamma(shape,scale,size):从 Gamma 分布中生成随机数。
numpy.random.geometric(p,size):从几何分布中生成随机数。
numpy.random.gumbel(loc,scale,size):从 Gumbel 分布中生成随机数。
numpy.random.hypergeometric(ngood, nbad, nsample, size):从超几何分布中生成随机数。
numpy.random.laplace(loc,scale,size):从拉普拉斯双指数分布中生成随机数。
numpy.random.logistic(loc,scale,size):从逻辑分布中生成随机数。
numpy.random.lognormal(mean,sigma,size):从对数正态分布中生成随机数。
numpy.random.logseries(p,size):从对数系列分布中生成随机数。
numpy.random.multinomial(n,pvals,size):从多项分布中生成随机数。
numpy.random.multivariate_normal(mean, cov, size):从多变量正态分布绘制随机样本。
numpy.random.negative_binomial(n, p, size):从负二项分布中生成随机数。
numpy.random.noncentral_chisquare(df,nonc,size):从非中心卡方分布中生成随机数。
numpy.random.noncentral_f(dfnum, dfden, nonc, size):从非中心 F 分布中抽取样本。
numpy.random.normal(loc,scale,size):从正态分布绘制随机样本。
numpy.random.pareto(a,size):从具有指定形状的 Pareto II 或 Lomax 分布中生成随机数。
numpy.random.poisson(lam,size):从泊松分布中生成随机数。
numpy.random.power(a,size):从具有正指数 a-1 的功率分布中在 0,1 中生成随机数。
numpy.random.rayleigh(scale,size):从瑞利分布中生成随机数。
numpy.random.standard_cauchy(size):从标准 Cauchy 分布中生成随机数。
numpy.random.standard_exponential(size):从标准指数分布中生成随机数。
numpy.random.standard_gamma(shape,size):从标准 Gamma 分布中生成随机数。
numpy.random.standard_normal(size):从标准正态分布中生成随机数。
numpy.random.standard_t(df,size):从具有 df 自由度的标准学生 t 分布中生成随机数。
numpy.random.triangular(left,mode,right,size):从三角分布中生成随机数。
numpy.random.uniform(low,high,size):从均匀分布中生成随机数。
numpy.random.vonmises(mu,kappa,size):从 von Mises 分布中生成随机数。
numpy.random.wald(mean,scale,size):从 Wald 或反高斯分布中生成随机数。
numpy.random.weibull(a,size):从威布尔分布中生成随机数。
numpy.random.zipf(a,size):从 Zipf 分布中生成随机数。
'''