Press ESC to close

NumPy生成随机数组的多种方法(附带实例)

生成随机数组主要使用 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 ]