numpy常用函数之randn
numpy中有一些常用的用来产生随机数的函数,randn就是其中一个,randn函数位于numpy.random中,函数原型如下:
numpy.random.randn(d0, d1, ..., dn)
这个函数的作用就是从标准正态分布中返回一个或多个样本值。什么是标准正态分布,大哥,你别吓我,上过高中吗?标准正态分布俗称高斯分布,正态分布是大自然中最常见的分布,标准正态分布就是期望为0,方差为1的正态分布。
如果没有参数,则返回一个值,如果有参数,则返回(d0, d1, …, dn)个值,这些值都是从标准正态分布中随机取样得到的。
d0, d1, …, dn都应该是整数,是浮点数也没关系,系统会自动把浮点数的整数部分截取出来。
参数
-
d0, d1, …, dn:应该为正整数,表示维度。
返回值
-
Z:ndarray或者float。
如果想要从非标准正态分布中产生随机样本,咋办?比如下面这个正态分布:
N(\mu,\sigma^2)
其实很简单,就是简单的加减乘除,如下所示:
\sigma * np.random.randn(...) + \mu
看几个例子吧:
np.random.randn()
返回:
-0.8405297****8702
再比如:
2.5 * np.random.randn(2, 4) + 3
返回:
array([[ 4.128****53, 1.764****44 , 2.732****92, 2.90839231],
[ 0.174****86, 4.92026887, 1.574****66, -0.4305991 ]])
这个函数与numpy.random.standard_normal函数非常相似,我都不知道为啥要设置两个功能重叠的函数,但是调用方式不一样:
numpy.random.standard_normal(size=None)
size参数就是一个整数或者一个整数的元组,表示维度,看看下面的例子:
np.random.standard_normal(8000)
或者:
np.random.standard_normal(size=(3, 4, 2))
想用哪个自己选吧,不过建议还是使用randn,毕竟常用一些。