NumPy random模块创建随机数组
在实际开发中,有时手动创建的数据并不能满足开发需求,所以我们还得借助一种特殊数组,那就是“随机数组”。
在 NumPy 中,可以使用 random 模块来创建一个随机数组。创建随机数组的方法主要有 3 种,如下表所示。
randint() 方法的语法格式如下:
1) 元素的取值范围为 [start, end),包含 start 但不包含 end。
2) size 的取值分为以下两种情况:
例如:
对于这个例子来说,下面 3 种方式是等价的。这 3 种方式我们都要了解一下,因为很多地方都会出现:
再举个例子:
rand() 方法的语法格式如下:
例如:
再举个例子:
randn()方法的语法格式如下:
再举个例子:
在 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 的取值分为以下两种情况:
- 当 size 是一个元组时,size=(m) 表示创建一个 m 行的一维数组,size=(m, n) 表示创建一个 m×n 的二维数组,以此类推。
- 当 size 是一个整数时,size=m 表示创建一个 m 行的一维数组。实际上,size=(m) 和 size=m 是等价的,因为对于一个数来说,使用“()”和不使用“()”是一样的。
例如:
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]]
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]]
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]]