numpy里random总结

在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下。

1. np.random.rand()

自己总结:返回[0,1)之间的数,rand()返回一个数字,rand(1)返回一个一维的一个数字数组,rand(2)返回一个一维的2个数字数组,以此类推。rand(3,4)返回3行4列的二维数组。
numpy.random.rand(d0,d1,…,dn)

  • rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
  • dn表格每个维度
  • 返回值为指定维度的array

例如:

X_train = np.random.rand(1)  #返回结果为: array([0.05306906])
X_train = np.random.rand(2) 
#返回结果为:array([0.32717865, 0.37672487])
X_train = np.random.rand(3)
#返回结果为:array([0.02279356, 0.26917234, 0.41363484])
X_train = np.random.rand(3,2)
#返回结果为:
array([[0.70345904, 0.25883973],
       [0.68601444, 0.94283444],
       [0.92911908, 0.05970667]])

2. np.random.randn()

numpy.random.randn(d0,d1,…,dn)

用法同np.random.rand()一样,只是服从正态分布。

  • randn函数返回一个或一组样本,具有标准正态分布。
  • dn表格每个维度
  • 返回值为指定维度的array

用法同上
标准正态分布介绍:

标准正态分布—-standard normal distribution
标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。

3. np.random.normal()

np.random.normal() 这个函数也可以生成服从正态分布的随机值,不过这个函数可以指定均值是多少,方差为多少。

这个函数一共有三个参数,分别是(loc, scale, size),分别代表生成的高斯分布的随机数的均值、方差以及输出的size(想要输出多少个这个的值)

例如:

x = np.random.normal(0.0, 0.04, 20)  #生成均值为0, 方差为0.04的20个值

输出结果为:
[-0.00119762 0.01028794 0.00995796 0.03071558 0.01184086 -0.06611406
-0.05173413 0.00847523 -0.06897574 -0.03200766 -0.0161479 0.01289039
0.00850447 0.05961137 0.04296977 0.03889325 0.06093833 -0.03076815
0.04706918 0.01173109]
当然也可以生成均值为0,标准差为0.2 的20 个数值

x = np.random.normal(0.0, np.sqrt(0.04), 20) 

输出结果为:

[-0.01875011 -0.03413463 0.08840297 -0.03431805 -0.50478762 -0.16077312
-0.23915868 -0.02994337 -0.31526258 0.40530537 -0.09105002 -0.1453058
-0.30872585 0.21236876 -0.16383452 0.04715747 -0.34465484 -0.07650099
0.07994941 0.11895559]

4. np.random.randint()

通过low来指定起点,通过high来指定终点,通过size参数来指定数组的维度,通过dtype来确定类型。

numpy.random.randint(low, high=None, size=None, dtype=’l’)

  • 返回随机整数,范围区间为[low,high),包含low,不包含high
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low)

例如:

np.random.randint(1,size=5) # 返回[0,1)之间的整数,所以只有0
#返回结果为:array([0, 0, 0, 0, 0])
np.random.randint(1,5) # 返回1个[1,5)区间的随机整数
#返回结果为:4
np.random.randint(-5,5,size=(2,2))
#返回结果为:
array([[ 2, -1],
       [ 2,  0]])

5. np.random.random(size=None)

通过size参数来指定维数
生成[0,1)之间的浮点数

例如:

X_train = np.random.random()
#返回结果为:0.9689405503449076
X_train = np.random.random(1)
#返回结果为:array([0.80323664])
X_train = np.random.random(2)
#返回结果为:array([0.12686505, 0.84483594])
X_train = np.random.random((2,3))
#返回结果为:
array([[0.39771528, 0.76109586, 0.51086943],
       [0.55745357, 0.43425362, 0.9797477 ]])

6. np.random.seed()

随机种子,保证每次生成的随机数字一样。OK。

先总结这几个吧,后续补充。

你可能感兴趣的:(人工智能)