找回密码
 立即注册
首页 业界区 安全 np.random简介

np.random简介

剩鹄逅 2025-6-1 20:40:17
np.random 是 NumPy 库中用于生成随机数的模块。NumPy 是 Python 里用于科学计算的基础库,np.random 模块提供了多种生成随机数的函数,可用于模拟、统计实验、机器学习等众多场景。下面介绍一些常用的函数及其用法:
1. 生成随机整数

np.random.randint(low, high=None, size=None, dtype=int) 函数可生成指定范围内的随机整数。
  1. import numpy as np
  2. # 生成一个范围在 0 到 9 之间的随机整数
  3. random_int = np.random.randint(0, 10)
  4. print("随机整数:", random_int)
  5. # 生成一个形状为 (3, 2) 的数组,数组元素是 1 到 10 之间的随机整数
  6. random_int_array = np.random.randint(1, 11, size=(3, 2))
  7. print("随机整数数组:\n", random_int_array)
复制代码
2. 生成均匀分布的随机数

np.random.rand(d0, d1, ..., dn) 函数可生成 [0, 1) 区间内均匀分布的随机浮点数。
  1. import numpy as np
  2. # 生成一个形状为 (2, 3) 的数组,数组元素是 [0, 1) 区间内的随机浮点数
  3. random_float_array = np.random.rand(2, 3)
  4. print("均匀分布的随机浮点数数组:\n", random_float_array)
复制代码
3. 生成标准正态分布的随机数

np.random.randn(d0, d1, ..., dn) 函数能生成服从标准正态分布(均值为 0,标准差为 1)的随机浮点数。
  1. import numpy as np
  2. # 生成一个形状为 (2, 3) 的数组,数组元素是服从标准正态分布的随机浮点数
  3. random_normal_array = np.random.randn(2, 3)
  4. print("标准正态分布的随机浮点数数组:\n", random_normal_array)
复制代码
4. 从给定的一维数组中随机抽取元素

np.random.choice(a, size=None, replace=True, p=None) 函数可从给定的一维数组 a 里随机抽取元素。
  1. import numpy as np
  2. # 定义一个一维数组
  3. arr = np.array([1, 2, 3, 4, 5])
  4. # 从数组中随机抽取一个元素
  5. random_choice = np.random.choice(arr)
  6. print("随机抽取的元素:", random_choice)
  7. # 从数组中随机抽取 3 个元素,允许重复抽取
  8. random_choice_array = np.random.choice(arr, size=3, replace=True)
  9. print("随机抽取的元素数组:", random_choice_array)
复制代码
5. 打乱数组顺序

np.random.shuffle(x) 函数可对数组 x 的顺序进行随机打乱,该函数会直接修改原数组。
  1. import numpy as np
  2. # 定义一个一维数组
  3. arr = np.array([1, 2, 3, 4, 5])
  4. # 打乱数组顺序
  5. np.random.shuffle(arr)
  6. print("打乱顺序后的数组:", arr)
复制代码
6. 设置随机数种子

np.random.seed(seed) 函数可设置随机数种子,这样每次运行代码时生成的随机数序列都会相同,便于结果的复现。
  1. import numpy as np
  2. # 设置随机数种子
  3. np.random.seed(42)
  4. # 生成随机数
  5. random_num1 = np.random.rand()
  6. # 再次设置相同的随机数种子
  7. np.random.seed(42)
  8. # 生成随机数
  9. random_num2 = np.random.rand()
  10. print("第一次生成的随机数:", random_num1)
  11. print("第二次生成的随机数:", random_num2)
复制代码
6.1 设置随机数种子的有效期是多长?

在使用np.random.seed()设置随机数种子时,其有效期会持续到下一次设置新的种子或者程序结束。
一旦调用了np.random.seed(),之后所有基于np.random生成随机数的操作都会依据这个种子来产生可重复的随机数序列。当你再次调用np.random.seed()并传入新的种子值,那么后续的随机数生成就会基于新的种子。要是在程序运行过程中没有再次调用np.random.seed(),那么种子会持续生效,整个程序里np.random生成的随机数都会保持可重复性。
以下是一个示例代码,用以说明种子的有效期:
  1. import numpy as np
  2. # 设置随机数种子
  3. np.random.seed(123)
  4. # 生成第一个随机数序列
  5. random_nums_1 = np.random.rand(3)
  6. print("第一次生成的随机数序列:", random_nums_1)
  7. # 再次设置相同的随机数种子
  8. np.random.seed(123)
  9. # 生成第二个随机数序列,应该和第一个相同
  10. random_nums_2 = np.random.rand(3)
  11. print("第二次生成的随机数序列:", random_nums_2)
  12. # 设置新的随机数种子
  13. np.random.seed(456)
  14. # 生成第三个随机数序列,基于新的种子
  15. random_nums_3 = np.random.rand(3)
  16. print("第三次生成的随机数序列:", random_nums_3)
复制代码
在这个例子中,第一次和第二次设置相同的种子,生成的随机数序列是一样的;而第三次设置了新的种子,生成的随机数序列就不同了。这就表明,种子的有效期一直到新的种子被设置。
7. 生成均匀分布的随机浮点数

np.random.random() 函数能够生成在 [0.0, 1.0) 区间内均匀分布的随机浮点数。所谓均匀分布,就是指在这个区间内每个数值被生成的概率是相等的。
np.random.random(size=None)
size:该参数为可选参数,用于指定输出数组的形状。若不提供此参数,函数会返回一个单独的随机浮点数;若提供该参数,可以是整数或者整数元组,函数会返回对应形状的数组,数组中的每个元素都是 [0.0, 1.0) 区间内的随机浮点数。
生成单个随机浮点数
  1. import numpy as np
  2. # 生成一个 [0.0, 1.0) 区间内的随机浮点数
  3. single_random_float = np.random.random()
  4. print("单个随机浮点数:", single_random_float)
复制代码
生成一维随机浮点数数组
  1. import numpy as np
  2. # 生成一个包含 5 个随机浮点数的一维数组
  3. one_dimensional_array = np.random.random(5)
  4. print("一维随机浮点数数组:", one_dimensional_array)
复制代码
生成多维随机浮点数数组
  1. import numpy as np
  2. # 生成一个形状为 (2, 3) 的二维随机浮点数数组
  3. two_dimensional_array = np.random.random((2, 3))
  4. print("二维随机浮点数数组:\n", two_dimensional_array)
复制代码
以上是 np.random 模块中部分常用函数的介绍,你可以依据具体需求选用合适的函数来生成随机数。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册