numpy.random.SeedSequence#

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

SeedSequence 以可重現的方式混合熵源,為獨立且極有可能非重疊的 BitGenerator 設定初始狀態。

一旦 SeedSequence 被實例化,您可以呼叫 generate_state 方法來取得適當大小的種子。呼叫 spawn(n) 將會建立 n 個 SeedSequence,可用於為獨立的 BitGenerator 設定種子,例如用於不同的執行緒。

參數:
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 記錄/pickle 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