剩鹄逅 发表于 2025-6-1 20:40:17

np.random简介

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

np.random.randint(low, high=None, size=None, dtype=int) 函数可生成指定范围内的随机整数。
import numpy as np

# 生成一个范围在 0 到 9 之间的随机整数
random_int = np.random.randint(0, 10)
print("随机整数:", random_int)

# 生成一个形状为 (3, 2) 的数组,数组元素是 1 到 10 之间的随机整数
random_int_array = np.random.randint(1, 11, size=(3, 2))
print("随机整数数组:\n", random_int_array)2. 生成均匀分布的随机数

np.random.rand(d0, d1, ..., dn) 函数可生成 [0, 1) 区间内均匀分布的随机浮点数。
import numpy as np

# 生成一个形状为 (2, 3) 的数组,数组元素是 [0, 1) 区间内的随机浮点数
random_float_array = np.random.rand(2, 3)
print("均匀分布的随机浮点数数组:\n", random_float_array)3. 生成标准正态分布的随机数

np.random.randn(d0, d1, ..., dn) 函数能生成服从标准正态分布(均值为 0,标准差为 1)的随机浮点数。
import numpy as np

# 生成一个形状为 (2, 3) 的数组,数组元素是服从标准正态分布的随机浮点数
random_normal_array = np.random.randn(2, 3)
print("标准正态分布的随机浮点数数组:\n", random_normal_array)4. 从给定的一维数组中随机抽取元素

np.random.choice(a, size=None, replace=True, p=None) 函数可从给定的一维数组 a 里随机抽取元素。
import numpy as np

# 定义一个一维数组
arr = np.array()

# 从数组中随机抽取一个元素
random_choice = np.random.choice(arr)
print("随机抽取的元素:", random_choice)

# 从数组中随机抽取 3 个元素,允许重复抽取
random_choice_array = np.random.choice(arr, size=3, replace=True)
print("随机抽取的元素数组:", random_choice_array)5. 打乱数组顺序

np.random.shuffle(x) 函数可对数组 x 的顺序进行随机打乱,该函数会直接修改原数组。
import numpy as np

# 定义一个一维数组
arr = np.array()

# 打乱数组顺序
np.random.shuffle(arr)
print("打乱顺序后的数组:", arr)6. 设置随机数种子

np.random.seed(seed) 函数可设置随机数种子,这样每次运行代码时生成的随机数序列都会相同,便于结果的复现。
import numpy as np

# 设置随机数种子
np.random.seed(42)

# 生成随机数
random_num1 = np.random.rand()

# 再次设置相同的随机数种子
np.random.seed(42)

# 生成随机数
random_num2 = np.random.rand()

print("第一次生成的随机数:", random_num1)
print("第二次生成的随机数:", random_num2)6.1 设置随机数种子的有效期是多长?

在使用np.random.seed()设置随机数种子时,其有效期会持续到下一次设置新的种子或者程序结束。
一旦调用了np.random.seed(),之后所有基于np.random生成随机数的操作都会依据这个种子来产生可重复的随机数序列。当你再次调用np.random.seed()并传入新的种子值,那么后续的随机数生成就会基于新的种子。要是在程序运行过程中没有再次调用np.random.seed(),那么种子会持续生效,整个程序里np.random生成的随机数都会保持可重复性。
以下是一个示例代码,用以说明种子的有效期:
import numpy as np

# 设置随机数种子
np.random.seed(123)

# 生成第一个随机数序列
random_nums_1 = np.random.rand(3)
print("第一次生成的随机数序列:", random_nums_1)

# 再次设置相同的随机数种子
np.random.seed(123)

# 生成第二个随机数序列,应该和第一个相同
random_nums_2 = np.random.rand(3)
print("第二次生成的随机数序列:", random_nums_2)

# 设置新的随机数种子
np.random.seed(456)

# 生成第三个随机数序列,基于新的种子
random_nums_3 = np.random.rand(3)
print("第三次生成的随机数序列:", random_nums_3)在这个例子中,第一次和第二次设置相同的种子,生成的随机数序列是一样的;而第三次设置了新的种子,生成的随机数序列就不同了。这就表明,种子的有效期一直到新的种子被设置。
7. 生成均匀分布的随机浮点数

np.random.random() 函数能够生成在 [0.0, 1.0) 区间内均匀分布的随机浮点数。所谓均匀分布,就是指在这个区间内每个数值被生成的概率是相等的。
np.random.random(size=None)
size:该参数为可选参数,用于指定输出数组的形状。若不提供此参数,函数会返回一个单独的随机浮点数;若提供该参数,可以是整数或者整数元组,函数会返回对应形状的数组,数组中的每个元素都是 [0.0, 1.0) 区间内的随机浮点数。
生成单个随机浮点数

import numpy as np

# 生成一个 [0.0, 1.0) 区间内的随机浮点数
single_random_float = np.random.random()
print("单个随机浮点数:", single_random_float)生成一维随机浮点数数组

import numpy as np

# 生成一个包含 5 个随机浮点数的一维数组
one_dimensional_array = np.random.random(5)
print("一维随机浮点数数组:", one_dimensional_array)生成多维随机浮点数数组

import numpy as np

# 生成一个形状为 (2, 3) 的二维随机浮点数数组
two_dimensional_array = np.random.random((2, 3))
print("二维随机浮点数数组:\n", two_dimensional_array)以上是 np.random 模块中部分常用函数的介绍,你可以依据具体需求选用合适的函数来生成随机数。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: np.random简介