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,则将从操作系统中提取新鲜的、不可预测的熵。如果传递了
int
或array_like[ints]
,则它将被传递给 SeedSequence 以派生初始的 BitGenerator 状态。也可以传递一个 SeedSequence 实例。此外,当传递一个 BitGenerator 时,它将被 Generator 包装。如果传递了一个 Generator,它将保持不变地返回。
- 返回
- 生成器
初始化的生成器对象。
参见
np.random.default_rng
注释
如果
seed
不是一个 BitGenerator 或 Generator,则会实例化一个新的 BitGenerator。此函数不管理默认的全局实例。示例
default_rng
是随机数类Generator
的推荐构造函数。以下是使用default_rng
和Generator
类构造随机数生成器的几种方法。这里我们使用
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]])