[解決済み] NumPyの乱数生成器の現在の種を取得するにはどうすればよいですか?
2023-07-12 01:01:42
質問
以下は、NumPyをインポートし、seedを設定しています。
import numpy as np
np.random.seed(42)
しかし、私はシードを設定することに興味があるわけではなく、むしろそれを読むことに興味があるのです。
random.get_state()
はシードを含んでいないようです。その
ドキュメント
には明らかな答えがありません。
で使用されている現在のシードを取得するにはどうすればよいのでしょうか?
numpy.random
で使用されている現在のシードを取得するにはどうしたらよいでしょうか?
ある処理の次の繰り返しで、現在のシードを持ち越しで使用したいのですが。
どのように解決するのですか?
簡単に言うと、単純にできない(少なくとも一般的にはできない)のです。
は メルセンヌ・ツイスター numpyで使用されるRNGは、2つの 19937 -1の可能な内部状態を持ちますが、単一の64ビット整数はたった2 64 の値しかありません。したがって、すべての RNG 状態を一意の整数シードにマップすることは不可能です。
あなたは
ができます。
を使用して、RNG の内部状態を直接取得および設定できます。
np.random.get_state
と
np.random.set_state
. の出力は
get_state
はタプルで、2番目の要素は
(624,)
の 32 bit 整数配列です。この配列は,RNG のすべての内部状態を表現するのに十分なビット数を持っています (2
624 * 32
2
19937
-1).
が返すタプルは
get_state
は、再現可能な乱数列を作成するために、種のように使用することができます。例えば
import numpy as np
# randomly initialize the RNG from some platform-dependent source of entropy
np.random.seed(None)
# get the initial state of the RNG
st0 = np.random.get_state()
# draw some random numbers
print(np.random.randint(0, 100, 10))
# [ 8 76 76 33 77 26 3 1 68 21]
# set the state back to what it was originally
np.random.set_state(st0)
# draw again
print(np.random.randint(0, 100, 10))
# [ 8 76 76 33 77 26 3 1 68 21]
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] リスト項目の出現回数を数えるにはどうしたらいいですか?
-
[解決済み] print関数の出力をフラッシュする(pythonの出力をバッファリング解除する)にはどうすればよいですか?
-
[解決済み] 現在のファイルのディレクトリのフルパスを取得するにはどうすればよいですか?
-
[解決済み] ランダムな英数字の文字列を生成するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み] Javascriptで乱数発生器の種を蒔く
-
[解決済み】乱数発生器が1つの乱数しか発生させない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] if 節の終了方法
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?