numpy.random.SeedSequence#

class numpy.random.SeedSequence(entropy=None, *, spawn_key=(), pool_size=4)#

SeedSequence 以可复现的方式混合熵源,为独立的、很可能不重叠的 BitGenerators 设置初始状态。

实例化 SeedSequence 后,您可以调用 generate_state 方法来获取适当大小的种子。调用 spawn(n) 将创建 n 个 SeedSequence,这些 SeedSequence 可用于为独立的 BitGenerators(例如,用于不同线程)提供种子。

参数:
entropy{None, int, sequence[int]},可选

用于创建 SeedSequence 的熵。所有整数值必须是非负的。

spawn_key{(), sequence[int]},可选

一个额外的熵源,基于此 SeedSequence 在通过 SeedSequence.spawn 方法创建的此类对象树中的位置。通常,只有 SeedSequence.spawn 会设置此值,用户不会。

pool_size{int},可选

要存储的池化熵的大小。默认为 4,提供一个 128 位熵池。如果使用更大的 PRNG,8(用于 256 位)是另一个合理的选择,但选择其他值几乎没有什么好处。

n_children_spawned{int},可选

已生成的子代的数量。仅在从序列化形式重建 SeedSequence 时才传递此参数。

注意事项

实现可复现比特流的最佳实践是,对初始熵使用默认值 None,然后使用 SeedSequence.entropy 来记录/序列化 entropy 以实现可复现性。

>>> sq1 = np.random.SeedSequence()
>>> sq1.entropy
243799254704924441050048792905230269161  # random
>>> sq2 = np.random.SeedSequence(sq1.entropy)
>>> np.all(sq1.generate_state(10) == sq2.generate_state(10))
True
属性:
entropy
n_children_spawned
pool
pool_size
spawn_key
state

方法

generate_state(n_words[, dtype])

返回 PRNG 播种所需的字数。

spawn(n_children)

通过扩展 spawn_key,生成多个子 SeedSequence 对象。