dask.array.random.default_rng

dask.array.random.default_rng

dask.array.random.default_rng(seed=None)[源代码]

使用默认的 BitGenerator (PCG64) 构造一个新的生成器。

参数
种子{None, int, array_like[ints], SeedSequence, BitGenerator, Generator}, 可选

用于初始化 BitGenerator 的种子。如果为 None,则将从操作系统中提取新鲜的、不可预测的熵。如果传递了 intarray_like[ints],则它将被传递给 SeedSequence 以派生初始的 BitGenerator 状态。也可以传递一个 SeedSequence 实例。此外,当传递一个 BitGenerator 时,它将被 Generator 包装。如果传递了一个 Generator,它将保持不变地返回。

返回
生成器

初始化的生成器对象。

参见

np.random.default_rng

注释

如果 seed 不是一个 BitGeneratorGenerator,则会实例化一个新的 BitGenerator。此函数不管理默认的全局实例。

示例

default_rng 是随机数类 Generator 的推荐构造函数。以下是使用 default_rngGenerator 类构造随机数生成器的几种方法。

这里我们使用 default_rng 来生成一个随机浮点数:

>>> import dask.array as da
>>> rng = da.random.default_rng(12345)
>>> print(rng)
Generator(PCG64)
>>> rfloat = rng.random().compute()
>>> rfloat
array(0.86999885)
>>> type(rfloat)
<class 'numpy.ndarray'>

这里我们使用 default_rng 生成 3 个介于 0(包含)和 10(不包含)之间的随机整数:

>>> import dask.array as da
>>> rng = da.random.default_rng(12345)
>>> rints = rng.integers(low=0, high=10, size=3).compute()
>>> rints
array([2, 8, 7])
>>> type(rints[0])
<class 'numpy.int64'>

这里我们指定一个种子,以便我们有可重复的结果:

>>> import dask.array as da
>>> rng = da.random.default_rng(seed=42)
>>> print(rng)
Generator(PCG64)
>>> arr1 = rng.random((3, 3)).compute()
>>> arr1
array([[0.91674416, 0.91098667, 0.8765925 ],
       [0.30931841, 0.95465607, 0.17509458],
       [0.99662814, 0.75203348, 0.15038118]])

如果我们退出并重新启动我们的 Python 解释器,我们会看到我们再次生成了相同的随机数:

>>> import dask.array as da
>>> rng = da.random.default_rng(seed=42)
>>> arr2 = rng.random((3, 3)).compute()
>>> arr2
array([[0.91674416, 0.91098667, 0.8765925 ],
       [0.30931841, 0.95465607, 0.17509458],
       [0.99662814, 0.75203348, 0.15038118]])