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,毕竟常用一些。

posted @ 2017-04-27 18:27  捉老鹰的小鸡鸡  阅读(2727)  评论(0编辑  收藏  举报