生成随机数组主要使用 NumPy 的 random 模块,下面介绍几个常用的生成随机数组的函数。
NumPy rand()函数
rand() 函数用于生成 (0, 1) 区间的随机数组,输入一个值随机生成一维数组,输入一对值随机生成二维数组,语法格式如下:
numpy.random.rand(d0, d1, d2, d3..., dn)
参数 d0,d1,...,dn 为整数,表示维数,可以为空值。
【实例】随机生成一维数组和二维数组,程序代码如下:
import numpy as np
n = np.random.rand(5)
print('随机生成0到1之间的一维数组:')
print(n)
n1 = np.random.rand(2, 5)
print('随机生成0到1之间的二维数组:')
print(n1)
运行程序,结果如下:
随机生成0到1之间的一维数组:
[0.61263942 0.91212086 0.52012924 0.98204632 0.31633564]
随机生成0到1之间的二维数组:
[[0.82044812 0.26050245 0.57000398 0.6050845 0.50440925]
[0.29113919 0.86638283 0.74161101 0.0728488 0.4466494 ]]
NumPy randn() 函数
randn() 函数用于生成满足正态分布的随机数组,语法格式如下:
numpy.random.randn(d0, d1, d2, d3..., dn)
【实例】生成满足正态分布的随机数组,程序代码如下:
import numpy as np
n1 = np.random.randn(5)
print('随机生成满足正态分布的一维数组:')
print(n1)
n2 = np.random.randn(2, 5)
print('随机生成满足正态分布的二维数组:')
print(n2)
运行程序,结果如下:
随机生成满足正态分布的一维数组:
[-0.05282077 0.79946288 0.96003714 0.29555332 -1.26818832]
随机生成满足正态分布的二维数组:
[[ 1.6872899 1.62042986 2.69278922 -0.64467268 -1.75645902]
[ 1.0973791 -0.22962313 -0.26965705 0.1225163 -1.89051741]]
NumPy randint()函数
randint() 函数与 NumPy 的 arange() 函数类似。randint() 函数用于生成一定范围内的随机数组,返回值为左闭右开区间,语法格式如下:
numpy.random.randint(low, high=None, size=None)
参数说明:
low:低值(起始值),整数,当参数high不为空值时,参数low的值应小于参数high的值,否则程序会出现错误;
high:高值(终止值),整数;
size:数组维数,整数或者元组,整数表示一维数组,元组表示多维数组。默认值为空值,仅返回一个整数。
【实例】生成一定范围内的随机数组,程序代码如下:
import numpy as np
n1 = np.random.randint(1, 3, 10)
print('随机生成10个1到3之间且不包括3的整数:')
print(n1)
n2 = np.random.randint(5, 10)
print('size数组大小为空,随机返回一个整数:')
print(n2)
n3 = np.random.randint(5, size=(2, 5))
print('随机生成5以内的二维数组')
print(n3)
运行程序,结果如下:
随机生成10个1到3之间且不包括3的整数:
[2 1 2 1 2 2 2 1 1]
size数组大小为空,随机返回一个整数:
8
随机生成5以内的二维数组:
[[2 2 2 4 2]
[3 1 3 1 4]]
NumPy normal()函数
normal() 函数用于生成满足正态分布的随机数组,语法格式如下:
numpy.random.normal(loc, scale, size)
参数说明:
loc:正态分布的均值,对应正态分布的中心。loc=0 说明是一个以 y 轴为对称轴的正态分布。
scale:正态分布的标准差,对应正态分布的宽度,scale 值越大,正态分布的曲线越矮胖,scale 值越小,曲线越高瘦。
size:表示数组维数。
【实例】生成满足正态分布的随机数组,程序代码如下:
import numpy as np
n = np.random.normal(loc=0, scale=0.1, size=10)
print(n)
运行程序,结果如下:
[ 0.08530096 0.0404147 -0.0035828 0.05405901 -0.01677737 -0.02448481
0.13410224 -0.09780364 0.06095256 -0.0431846 ]