NumPy 的 random 模块提供了丰富的函数来生成不同类型的随机数,如均匀分布、正态分布等。本文将详细介绍这些函数的具体用法及其应用场景。
### 1. np.random.uniform 的用法
np.random.uniform(low=0.0, high=1.0, size=None)
作用:生成在 [low, high) 区间内的随机数,可以是单个值、一维数组或多维数组。
参数:
low
: float 或数组,默认为 0。high
: float 或数组,默认为 1。size
: int 或元组,默认为空。
示例:
import numpy as np
# 默认生成 [0, 1) 区间的随机数
print(np.random.uniform())
# 生成 [1, 5) 区间的随机数
print(np.random.uniform(1, 5))
# 生成 [1, 5) 区间的一维数组
print(np.random.uniform(1, 5, 4))
# 生成 4x3 的数组
print(np.random.uniform(1, 5, (4, 3)))
# 生成两个不同区间的随机数
print(np.random.uniform([1, 5], [5, 10]))
### 2. np.random.random_sample 的用法
np.random.random_sample(size=None)
作用:返回 [0, 1) 区间的浮点型随机数,通过 size
参数控制返回的形状。
示例:
# 生成单个随机数
print(np.random.random_sample())
# 生成一维数组
print(np.random.random_sample((5,)))
# 生成 [-5, 0) 区间的三行两列数组
print(5 * np.random.random_sample((3, 2)) - 5)
### 3. np.random.rand 的用法
np.random.rand(d0, d1, ..., dn)
作用:返回 [0, 1) 区间的浮点数,输入的 d0, d1, ..., dn
代表维度信息,没有输入时返回单个随机值。
示例:
# 生成单个随机数
print(np.random.rand())
# 生成 3x3 的数组
print(np.random.rand(3, 3))
# 生成 3x3x3 的数组
print(np.random.rand(3, 3, 3))
### 4. np.random.randint 的用法
np.random.randint(low, high=None, size=None, dtype='l')
作用:生成整型随机数,可以是单个随机数或多维数组。
参数:
low
: int,随机数的下限。high
: int,默认为空,随机数的上限。当此值为空时,生成 [0, low) 区间的随机数。size
: int、元组或 None,指明生成的随机数的形状。dtype
: 可选 'int', 'int32',默认为 'l'。
示例:
# 生成单个随机数
print(np.random.randint(4))
# 生成一维数组
print(np.random.randint(4, size=4))
# 生成 [4, 10) 区间的一维数组
print(np.random.randint(4, 10, size=6))
# 生成 2x2 的数组
print(np.random.randint(4, 10, size=(2, 2), dtype='int32'))
### 5. np.random.random_integers 的用法
np.random.random_integers(low, high=None, size=None)
作用:与 randint
类似,但右边界能够取到。该函数即将被抛弃,建议使用 np.random.randint(low, high+1)
代替。
示例:
# 生成单个随机数
print(np.random.random_integers(1, 5))
# 生成一维数组
print(np.random.random_integers(1, 5, size=4))
### 总结
随机数可以分为两大类:一类是浮点型随机数,常用的有 np.random.uniform
、np.random.rand
和 np.random.random_sample
;另一类是整数型随机数,常用的有 np.random.randint
。其中,np.random.random_integers
将被 np.random.randint
取代。
以上内容希望能帮助大家更好地理解和使用 NumPy 的随机数生成函数。