「numpy」ndarray random 生成随机数组

95 阅读2分钟

Numpy ndarray random 生成随机数组

【目录】

  • .astype() 指定生成的数据类型
  • 均匀分布族
  • 正态分布族
  • 附录:正态分布

一、 均匀分布族

1.1 np.random.rand(d0, d1, ... , dn)

  • 返回 [0.0,1.0) 内的一组均匀分布的数。
  • d0, d1, ..., dn表示的是返回的数组形状
  • 默认返回一个值
 np.random.rand(2, 3)    # 返回 2*3 的数组
 ​
 # 返回结果
 [[0.71158201 0.5472807  0.03216727]
  [0.73285615 0.33696739 0.38046974]]
 ​
 (np.random.rand(2, 3) * 10).astype(int)
 ​
 # 返回结果
 [[2 7 5]
  [7 7 9]]

1.2 np.random.uniform(low=0.0, high=1.0, size=None)

  • 功能:从一个均匀分布 [low,high) 中随机采样,注意定义域是左闭右开,即包含low,不包含high.

  • 参数介绍:

    • low: 采样下界,float类型,默认值为0;
    • high: 采样上界,float类型,默认值为1;
    • size: 输出样本数目,为 int 或 元组(tuple) 类型,例如,size=(m,n,k), 则输出 mnk 个样本,缺省时输出1个值。
  • 返回值:ndarray类型,其形状和参数size中描述一致。

 x = np.random.uniform(2, 100, 10).astype(int)
 ​
 # 返回结果
 [96 15 22 44 44 40 29 17 53 36]
 ​
 x = np.random.uniform(2, 100, (2, 3)).astype(int)
 ​
 # 返回结果2 * 3的矩阵
 [[83 45 33]
  [53 59 24]]

1.3 np.random.randint(low, high=None, size=None, dtype='l')

  • 从一个均匀分布中随机采样,生成一个整数或N维整数数组,
  • 取数范围:若high不为None时,取 [low, high) 之间随机整数,否则取值 [0, low) 之间随机整数。
 np.random.randint(2, 10, (2, 3))
 ​
 # 返回结果
 [[4 9 6]
  [3 4 5]]

二、正态分布族

2.1 np.random.randn(d0, d1, …, dn)

  • 功能:从标准正态分布中返回一个或多个样本值
  • d0, d1, ..., dn表示的是返回的数组形状
  • 默认返回一个值
 np.random.randn(3, 4)
 ​
 # 返回结果
 [[ 0.14441314 -0.34550722 -0.52453755 -0.82717355]
  [-1.03770161 -0.08493841 -0.46503424  0.13998059]
  [ 1.01588714 -1.0568847  -1.06361677  0.55616858]]

2.2 np.random.normal(loc=0.0, scale=1.0, size=None)

  • loc:float。此概率分布的均值 μ(对应着整个分布的中心centre)
  • scale:float。此概率分布的标准差 σ^{2}(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
  • size:int or tuple of ints。输出的shape,默认为None,只输出一个值
 np.random.normal(2.5, 1, (2, 3))
 ​
 # 返回结果
 [[3.45118935 1.62603303 2.9732034 ]
  [4.71411834 2.54191783 1.20813369]]

2.3 np.random.standard_normal(size=None)

  • 返回指定形状的标准正态分布的数组。
 np.random.standard_normal(2)
 ​
 # 返回结果
 [-0.34581976  0.54047825]

附录: 正态分布

第一参数μ是服从正态分布的随机变量的均值,第二个参数σ是此随机变量的标准差, 记作 X ~ N(μ,σ^2)

  • 生活、生产与科学实验中很多随机变量的概率分布都可以近似地用正态分布来描述。
  • μ决定了其位置,其标准差 σ^2 决定了分布的幅度。 σ^2 越大越矮胖, σ^2 越小,越瘦高
  • 标准差和方差:数据的离散程度的度量

正态分布.png