📜  np.random.randn() - Python (1)

📅  最后修改于: 2023-12-03 14:44:45.827000             🧑  作者: Mango

np.random.randn() - Python

np.random.randn() 是 NumPy 库中的一个函数,用于生成符合标准正态分布的随机数。

使用

np.random.randn() 函数不需要传入参数即可生成随机数,它会返回一个数组,数组的维度可以通过参数进行控制。

import numpy as np

# 生成一个长度为 5 的随机数数组
arr1 = np.random.randn(5)

# 生成一个 3x3 的随机数矩阵
arr2 = np.random.randn(3, 3)

print(arr1)
print(arr2)

输出:

[-0.35860086  0.55575495  0.81330949 -0.54846992  1.0160411 ]
[[ 2.10042351e-01  4.49659369e-01  4.08675865e-01]
 [-1.11957991e+00 -9.63274185e-01  1.95533580e+00]
 [-8.92625052e-01 -1.33015692e+00  1.91183201e-03]]
产生原理

np.random.randn() 是通过 Box-Muller 转换算法产生符合标准正态分布的随机数。Box-Muller 转换算法是通过两个独立但服从相同分布的随机变量的变换得到一个新的服从正态分布的随机变量。

参数

np.random.randn() 函数没有任何参数,调用时可以不加任何参数直接使用。

返回值

np.random.randn() 函数的返回值是一个数组,数组的维度可以由参数指定,默认为一个长度为 1 的数组。返回的随机数为标准正态分布的数字。

示例
import numpy as np

# 生成一个长度为 10 的随机数数组
print("Length 10 array:", np.random.randn(10))

# 生成一个 2x3 的随机数矩阵
print("2x3 array:", np.random.randn(2, 3))

# 生成一个 2x2x2 的随机数数组
print("3D array:", np.random.randn(2, 2, 2))

输出:

Length 10 array: [-0.66178873 -0.1988914   0.77003983 -1.26540802 -0.04600062 -0.16735507
  0.34116077  0.94014299 -0.79952941  0.5531842 ]
2x3 array: [[-0.09055671  0.76489336 -0.61880096]
 [-0.72689005  1.1147502   0.47073354]]
3D array: [[[-0.42441176 -0.55760182]
  [ 0.62198382 -1.23179095]]

 [[-0.95116166 -0.37048697]
  [-0.42000597 -1.23398582]]]
结论

np.random.randn() 函数非常方便地生成了符合标准正态分布的随机数数组,使用简单,可通过参数控制生成的数组形状。如果需要生成指定分布的随机数,可以使用 NumPy 库中的其他随机数函数。