1.1 函数式
1.随机数
numpy.random.rand()
-
numpy.random.rand(d0, d1, ..., dn)
:指定形状(d0, d1, ..., dn)
创建一个随机的ndarray
。每个元素值来自于半闭半开区间[0,1)
并且服从均匀分布。- 要求
d0, d1, ..., dn
为整数 - 如果未提供参数,则返回一个随机的浮点数而不是
ndarray
,浮点数值来自于半闭半开区间[0,1)
并且服从均匀分布。
- 要求
-
numpy.random.randn(d0, d1, ..., dn)
:指定形状(d0, d1, ..., dn)
创建一个随机的ndarray
。每个元素值服从正态分布,其中正态分布的期望为0,方差为1。- 要求
d0, d1, ..., dn
为整数或者可以转换为整数 - 如果
di
为浮点数,则截断成整数 - 如果未提供参数,则返回一个随机的浮点数而不是
ndarray
,浮点数值服从正态分布,其中正态分布的期望为0,方差为1。
- 要求
-
numpy.random.randint(low[, high, size])
:返回一个随机的整数ndarray
或者一个随机的整数值。- 如果
high
为None
,则表示整数值都取自[0,low)
且服从discrete uniform
分布(离散均匀分布)。 - 如果
high
给出了值,则表示整数值都取自[low,high)
且服从discrete uniform
分布(离散均匀分布)。 size
是一个整数的元组,指定了输出的ndarray
的形状。如果为None
则表示输出为单个整数值。
- 如果
-
numpy.random.random_integers(low[, high, size])
:返回一个随机的整数ndarray
或者一个随机的整数值。- 如果
high
为None
,则表示整数值都取自[1,low]
且服从discrete uniform
分布 - 如果
high
给出了值,则表示整数值都取自[low,high]
且服从discrete uniform
分布 size
是一个整数的元组,指定了输出的ndarray
的形状。如果为None
则表示输出为单个整数值。它与randint
区别在于randint
是半闭半开区间,而random_integers
是全闭区间。
- 如果
numpy.random.random_sample([size])
:返回一个随机的浮点ndarray
或者一个随机的浮点值,浮点值是[0.0,1.0)
之间均匀分布的随机数。size
为整数元组或者整数,指定结果ndarray
的形状。如果为None
则只输出单个浮点数- 如果想生成
[a,b)
之间均匀分布的浮点数,那么你可以用(b-a)*random_sample()+a
- 如果
size
有效,它的效果等于numpy.random.rand(*size)
; 如果size
无效,它的效果等于numpy.random.rand()
-
numpy.random.random([size])
:等价于numpy.random.random_sample([size])
-
numpy.random.ranf([size])
:等价于numpy.random.random_sample([size])
-
numpy.random.sample([size])
:等价于numpy.random.random_sample([size])
-
numpy.random.choice(a[, size, replace, p])
:从一维数组中采样产生一组随机数或者一个随机数
-
a
为一位数组或者int
,如果是int
则采样数据由numpy.arange(n)
提供,即范围为(1,n),否则采用数据由a
提供。 -
size
为整数元组或者整数,指定结果ndarray
的形状。如果为None
则只输单个值。 -
replace
:如果为True
则可以重复采样(有放回的采样);如果为False
,则采用不放回的采样。 -
p
:为一维数组,用于指定采样数组中每个元素值的采样概率。如果为None
则均匀采样。 -
如果参数有问题则抛出异常:比如
a
为整数但是小于0,比如p
不满足概率和为1
,等等。。 -
numpy.random.bytes(length)
:返回length
长度的随机字节串。length
指定字节长度。
2.排列组合
numpy.random.shuffle(x): 原地随机混排x 的内容,返回None。x为array-like
numpy.random.permutation(x)
:随机重排x
,返回重排后的ndarray
。x
为array-like
对象,不会修改它。
-
如果
x
是个整数,则重排numpy.arange(x)。
-
如果
x
是个数组,则拷贝它然后对拷贝进行混排,,这样保证不会修改x。 -
如果x是个多维数则知识混洗它的第0维
-
3.概率分布函数:下面是共同参数:size
若非None
,则它指定输出ndarray
的形状。如果为None
,则输出单个值。
numpy.random.beta(a, b[, size])
:Beta分布。其中a,b
都是Beta分布的参数,要求非负浮点数。
numpy.random.binomial(n, p[, size])
:二项分布。其中n,p
都是二项分布的参数,要求n
为大于等于0的浮点数,如果它为浮点数则截断为整数;p
为[0,1]
之间的浮点数。
numpy.random.chisquare(df[, size])
:卡方分布。其中df
为整数,是卡方分布的自由度(若小于等于0则抛出异常)。
-
numpy.random.dirichlet(alpha[, size])
:狄利克雷分布。其中alpha
是个数组,为狄利克雷分布的参数。 -
numpy.random.exponential([scale, size])
:指数分布。scale
为浮点数,是参数 β。 -
指数分布的概率密度函数为:
-
-
numpy.random.f(dfnum, dfden[, size])
:F
分布。dfnum
为浮点数,应该大于0,是分子的自由度;dfden
是浮点数,应该大于0,是分母的自由度。 -
numpy.random.gamma(shape[, scale, size])
:伽玛分布。其中shape
是个大于0的标量,表示分布的形状;scale
是个大于0的标量,表示伽玛分布的scale
(默认为1)。 -
伽玛分布的概率密度函数为:
-
-
其中
k
为形状, 为scale
-
numpy.random.geometric(p[, size])
:几何分布。其中p
是单次试验成功的概率。 -
几何分布为:
-
numpy.random.gumbel([loc, scale, size])
:甘贝尔分布。其中loc
为浮点数,是分布的location of mode
,scale
是浮点数,为scale
。
-
甘贝尔分布:
-
-
其中 为
location of mode
, 为scale。
-
4、总结
内容来自网络,侵删。