NumPy生成随机数组的多种方法(附带实例)
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 ]