首页 > 编程笔记 > Python笔记

NumPy random模块创建随机数组

在实际开发中,有时手动创建的数据并不能满足开发需求,所以我们还得借助一种特殊数组,那就是“随机数组”。

在 NumPy 中,可以使用 random 模块来创建一个随机数组。创建随机数组的方法主要有 3 种,如下表所示。

表:创建随机数组的方法
方 法 说 明
randint(start, end) 随机整数,范围为 [start, end)
rand() 随机浮点数,范国为 [0, 1)
randn() 随机浮点数,符合正态分布

1、randint()方法

在 NumPy 中,可以使用 random 模块的 randint() 方法来创建一个整型随机数组。

randint() 方法的语法格式如下:
np.random.randint(start, end, size=元组或整数)
说明:
1) 元素的取值范围为 [start, end),包含 start 但不包含 end。

2) size 的取值分为以下两种情况:
例如:
import numpy as np
arr = np.random.randint(10, 20, size=(5))
print(arr)
输出结果如下:

[14 11 17 16 12]

randint(10, 20, size=(5)) 表示创建一个包含 5 个元素的一维随机数组,元素都是 [10, 20) 内的整数。

对于这个例子来说,下面 3 种方式是等价的。这 3 种方式我们都要了解一下,因为很多地方都会出现:
# 方式1
arr = np.random.randint(10, 20, size=(5))
# 方式2
arr = np.random.randint(10, 20, size=5)
# 方式3
arr = np.random.randint(10, 20, 5)

再举个例子:
import numpy as np
arr = np.random.randint(10, 20, size=(2, 5))
print(arr)
输出结果如下:

[[14 14 19 12 19]
[17 12 15 14 12]]

randint(10, 20, size=(2, 5)) 表示创建一个 2 行 5 列的二维随机数组,元素都是 [10, 20) 内的整数。

2、rand()方法

在 NumPy 中,可以使用 random 模块的 rand() 方法来创建一个浮点型随机数组,其元素的取值范围为 [0,1)。

rand() 方法的语法格式如下:
np.random.rand(m, n)
当 rand() 有一个参数时,例如 rand(m),表示创建一个包含 m 个元素的一维随机数组。当 rand() 有两个参数时,例如 rand(m, n),表示创建一个 m×n 的二维随机数组。

例如:
import numpy as np
arr = np.random.rand(5)
print(arr)
输出结果如下:

[0.52039969 0.44537686 0.66946674 0.91937385 0.6516376]

在这个例子中,rand(5) 表示创建一个包含5个元素的一维随机数组。其中,元素都是 [1,0) 内的浮点数。

再举个例子:
import numpy as np
arr = np.random.rand(2, 5)
print(arr)
输出结果如下:

[[0.23881446 0.78932247 0.58749747 0.86061954 0.65791401]
[0.59769419 0.12579491 0.79234194 0.74421893 0.27629203]]

在这个例子中,rand(2, 5) 表示创建一个 2×5 的二维随机数组。

3、randn()方法

在 NumPy 中,可以使用 random 模块的 randn() 方法来生成一个随机数组,该数组的元素符合正态分布。

randn()方法的语法格式如下:
np.random.randn(m, n)
当 randn() 有一个参数时,例如 randn(m),表示创建一个包含 m 个元素的一维随机数组。当 randn() 有两个参数时,例如 randn(m, n),表示创建一个 m×n 的二维随机数组。

randn() 和 rand() 的参数是一样的,只是生成的元素的值不一样。

例如:
import numpy as np
arr = np.random.randn(5)
print(arr)
输出结果如下:

[-1.05723124 -0.00507968 -0.20048986  0.0417768   1.51705339]

在这个例子中,randn(5) 表示创建一个包含 5 个元素的一维随机数组。

再举个例子:
import numpy as np
arr = np.random.randn(2, 5)
print(arr)
输出结果如下:

[[-2.0953303  0.03843233  -0.63218314  1.22316454  0.21490433]
[-0.5237318  -1.01258678  0.58363956  0.11605207  1.39723533]]

在这个例子中,randn(2, 5) 表示创建一个 2×5 的二维随机数组。

相关文章