随机抽样 — NumPy v2.3 手册

随机抽样 — NumPy v2.3 手册

快速开始#

numpy.random 模块实现了伪随机数生成器(简称 PRNG 或 RNG),能够从各种概率分布中抽取样本。通常,用户会使用 default_rng 创建一个 Generator 实例,并调用其各种方法以从不同分布中获取样本。

在浏览器中试用!

>>> import numpy as np

>>> rng = np.random.default_rng()

生成一个在范围 \([0, 1)\) 内均匀分布的随机浮点数

>>> rng.random()

0.06369197489564249 # may vary

根据单位高斯分布生成一个包含 10 个数字的数组

>>> rng.standard_normal(10)

array([-0.31018314, -1.8922078 , -0.3628523 , -0.63526532, 0.43181166, # may vary

0.51640373, 1.25693945, 0.07779185, 0.84090247, -2.13406828])

在范围 \([0, 10)\) 内均匀生成一个包含 5 个整数的数组

>>> rng.integers(low=0, high=10, size=5)

array([8, 7, 6, 2, 0]) # may vary

返回在新标签页中打开我们的 RNG 是确定性序列,可以通过指定一个种子整数来派生其初始状态,从而实现复现。默认情况下,如果没有提供种子,default_rng 将从操作系统的非确定性数据中为 RNG 播种,因此每次都会生成不同的数字。伪随机序列在所有实际用途中都将是独立的,至少对于我们的伪随机性最初表现良好的那些用途而言。

在浏览器中试用!

>>> import numpy as np

>>> rng1 = np.random.default_rng()

>>> rng1.random()

0.6596288841243357 # may vary

>>> rng2 = np.random.default_rng()

>>> rng2.random()

0.11885628817151628 # may vary

返回在新标签页中打开

警告

此模块中实现的伪随机数生成器设计用于统计建模和模拟。它们不适用于安全或加密目的。有关此类用例,请参阅标准库中的 secrets 模块。

种子应为大的正整数。default_rng 可以接受任意大小的正整数。我们建议使用非常大、唯一的数字,以确保您的种子与他人的不同。这是一个良好的实践,可以确保您的结果在统计学上独立于他人,除非您有意图地尝试复现他们的结果。获取此类种子数字的一种便捷方法是使用 secrets.randbits 来获取任意 128 位整数。

在浏览器中试用!

>>> import numpy as np

>>> import secrets

>>> secrets.randbits(128)

122807528840384100672342137672332424406 # may vary

>>> rng1 = np.random.default_rng(122807528840384100672342137672332424406)

>>> rng1.random()

0.5363922081269535

>>> rng2 = np.random.default_rng(122807528840384100672342137672332424406)

>>> rng2.random()

0.5363922081269535

返回在新标签页中打开有关在特殊场景中控制种子的更高级选项,请参阅 default_rng 和 SeedSequence 的文档。

Generator 及其相关基础设施是在 NumPy 1.17.0 版本中引入的。仍有大量代码使用旧版 RandomState 以及 numpy.random 中的函数。虽然目前没有计划移除它们,但我们建议您尽可能地过渡到 Generator 。这些算法更快、更灵活,并且未来将获得更多改进。在大多数情况下, Generator 可以作为 RandomState 的替代品。有关旧版基础设施的信息,请参阅 旧版随机生成 ;有关过渡的信息,请参阅 新特性或差异 ;有关过渡的一些原因,请参阅 NEP 19 。

相关推荐

教程:使用地图
beat365体育

教程:使用地图

📅 07-06 👁️ 6239
萣字的意思和解釋
beat365体育

萣字的意思和解釋

📅 07-04 👁️ 1577
14位明星花式耍大牌,中国明星的门槛要提高了!
365bet亚洲版官

14位明星花式耍大牌,中国明星的门槛要提高了!

📅 07-12 👁️ 8506