np.random.rand()函数与randn()

numpy.random.randn()与rand()的区别:

  • numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值。 
  • numpy.random.rand(d0, d1, …, dn)的随机样本位于[0, 1)中:本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。

1.  np.random.rand()函数

  注:np.random.rand使用方法与np.random.randn()函数相同,见下面的randn()函数。

均匀分布:

也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。

均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。

均匀分布的概率密度函数为:

  •  

2.  np.random.randn() :返回数,返回1行n列的矩阵,返回d0*d1,d2*d3

  np.random.randn(d0,d1,d2……dn)
  • 1.当函数括号内没有参数时,则返回一个浮点数;

  • 2.当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵;

 np.random.rand(n):生成n个数字:服从均匀分布

import numpy as np
n=100
numbers=np.random.rand(n)
print(numbers)
print(numbers[0])

生成结果:

[0.38168677 0.59407726 0.35176551 0.06454376 0.83568464 0.69637982
 0.24368057 0.19585352 0.65597577 0.34974667 0.12226723 0.09980699
 0.28026482 0.36982289 0.98451365 0.67577312 0.3396587  0.83913777
 0.19975695 0.48266711 0.06253195 0.03442195 0.26711649 0.59684131
 0.32449135 0.201035   0.10583951 0.22929671 0.36369577 0.79181915
 0.37036303 0.23298382 0.38424825 0.60184844 0.20676976 0.16115611
 0.68320131 0.39269848 0.14410751 0.24837102 0.17024295 0.83205654
 0.13939348 0.20668946 0.30256059 0.00508079 0.25822745 0.98956192
 0.28415732 0.46733642 0.98349761 0.60101909 0.89957235 0.49399372
 0.66874855 0.71217971 0.4240244  0.15444761 0.56674883 0.33054616
 0.3354706  0.02875843 0.24177997 0.21024322 0.71773817 0.17882851
 0.44207474 0.11530786 0.35135403 0.760504   0.64180164 0.0205157
 0.46417601 0.99069724 0.49334422 0.49878908 0.14926022 0.55568238
 0.0986128  0.36320792 0.63561554 0.52765909 0.58487077 0.05659434
 0.13670034 0.81223304 0.73038064 0.54155066 0.0498481  0.5281924
 0.79728807 0.5819477  0.57417879 0.06890877 0.36662187 0.88355421
 0.89484216 0.01090776 0.58829253 0.47415749]
0.3816867739686278

Process finished with exit code 0
  • 3.当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵。np.random.rand(行,列)

  • 4.np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple). 

建议试试,结果有利于理解多维数组:

np.random.standard_normal((5))
np.random.standard_normal((5,2))
np.random.standard_normal((5,2,3))
np.random.standard_normal((5,2,3,1))
  • np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。

原文地址:https://www.cnblogs.com/BBS2013/p/12839042.html