PythonのライブラリNumpyには乱数を発生させる関数が多数そろっている。

ただ場合によっては、乱数を使った分析などにおいて、処理を実行するたびに値が変わってしまうと不都合なケースもある。

こういった場合に、一度発生させた乱数を固定させ、次回以降の処理の際にも同じ乱数を発生させることができる方法があるので、今回はそれを紹介する。

通常の乱数発生関数

まず、0から100までの範囲で乱数を10個生成してみる。

import numpy as np

random_array = np.random.randint(0, 100, 10)
print(random_array)

# [56 30 48 47 39 38 44 18 64 56]

このコードは実行するたびに得られる値が変わる。

乱数を固定させるnp.random.seed

先ほどのコードにたった一行のコードを追加するだけで、発生する乱数を固定化させることができる。

import numpy as np

np.random.seed(0)

random_array = np.random.randint(0, 100, 10)
print(random_array)

# [56 30 48 47 39 38 44 18 64 56]

一度発生させた乱数の再現性が必要な場合に使うと便利な機能だ。