00275 np.random 学习笔记


前言

介绍 np.random。

Operating System: Ubuntu 22.04.4 LTS

参考文档

np.random.RandomState

np.random.RandomState 是 NumPy 库中的一个类,它用于生成伪随机数。这个类允许用户通过一个种子值(seed)来初始化一个伪随机数生成器,这样就可以在不同的运行中复现随机数序列,这对于需要可重复实验的科学计算和模拟是非常重要的。

以下是一些关于 np.random.RandomState 的基本用法:

创建 RandomState 实例

import numpy as np
# 创建一个RandomState实例,可以提供一个种子值
rng = np.random.RandomState(seed=123)

使用 RandomState 实例生成随机数

# 生成一个随机浮点数
random_float = rng.rand()
# 生成一个形状为(3, 3)的随机浮点数数组
random_array = rng.rand(3, 3)
# 从一个给定数组中随机选择一个元素
random_element = rng.choice([1, 2, 3, 4, 5])
# 生成一个正态分布的随机数组
normal_array = rng.randn(3, 3)

为什么使用 RandomState 而不是 np.random

直接使用 np.random 模块的功能时,无法保证每次运行代码时生成的随机数序列是相同的。而使用 RandomState,你可以通过设置相同的种子值来确保随机数序列的可重复性。

注意事项

  • 当使用 RandomState 进行重要的科学计算或数据分析时,确保记录下所使用的种子值,以便其他研究者能够复现你的结果。
  • 在某些情况下,为了更好的随机性和性能,可能会选择使用 numpy.random.Generator 类,这是 NumPy 1.17.0 及以后版本中引入的,它提供了更现代的伪随机数生成器 API。

在使用任何随机数生成器时,都应确保理解其性质和局限性,以确保研究的有效性和结果的可靠性。

np_rng.binomial

np_rng.binomial 通常是在 Python 的 NumPy 库中使用,用于生成符合二项分布的随机数。这里 np_rng 可能是一个 NumPy 的随机数生成器实例,而 binomial 是一个方法,用于生成二项分布的随机样本。

二项分布是一种离散概率分布,它表示在 n 次独立的伯努利试验中成功的次数,其中每次试验的成功概率为 p。

以下是 binomial 方法的语法:

np_rng.binomial(n, p, size=None)
  • n:试验次数,一个整型数字。
  • p:每次试验中成功的概率,一个在区间 [0,1] 内的浮点数。
  • size:输出形状的元组,可选参数,默认为 None,这时返回单个值。

例如,如果你想生成 10 次伯努利试验中成功次数的 5 个随机样本,每次试验成功的概率为 0.5,可以这样写:

import numpy as np
# 创建一个随机数生成器实例
np_rng = np.random.default_rng()
# 生成二项分布的随机样本
samples = np_rng.binomial(n=10, p=0.5, size=5)
print(samples)

在这个例子中,samples 将是一个包含 5 个整数的数组,每个整数代表在一次试验序列中成功的次数。

需要注意的是,在使用 NumPy 时,应该遵循最佳实践来创建随机数生成器的实例,并且使用这个实例来生成随机数,这样可以确保随机数生成的可重复性和性能。在上面的例子中,default_rng() 是 NumPy 1.17 版本之后推荐的方式来创建一个随机数生成器实例。

np_rng.randint

np_rng.randint 通常是在使用 NumPy 库时用于生成随机整数的函数。这里的 np_rng 可能是一个 NumPy 的随机数生成器实例。下面是 numpy.random.Generator.randint 方法的标准用法:

import numpy as np
# 创建一个随机数生成器实例
rng = np.random.default_rng()
# 生成一个随机整数,范围从 low(包括)到 high(不包括)
random_integer = rng.randint(low, high)

其中:

  • low 是生成的随机数的最小值,默认为 0。
  • high 是生成的随机数的最大值(但不包括这个值)。

如果你想要生成一个随机整数数组,你可以指定一个形状:

# 生成一个形状为 (3, 2) 的二维数组,数组中的元素是 [low, high) 范围内的随机整数
random_integers = rng.randint(low, high, size=(3, 2))

请确保在使用这个函数之前,你已经正确安装了 NumPy 库,并且已经从 numpy.random 模块中创建了一个随机数生成器实例。如果你有具体的代码或者需要进一步的帮助,请提供更多的上下文。

结语

第二百七十五篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录