np.random モジュールで乱数を生成する
このコースと続編では、np.random モジュールを徹底的に使っていきます。ハッカースタティスティシャンとして作業するとき、RNGインスタンスのメソッドは他のどの関数よりも頻繁に呼び出すことになるでしょう。まずはシンプルな関数 rng.random() を試してみましょう。この関数は0以上1未満の乱数を返します。rng.random() を数回呼ぶと、0から1の間で値が飛び回るのがわかるはずです。
この演習では、0以上1未満の乱数を大量に生成し、その結果のヒストグラムを描画します。本当にランダムなら、ヒストグラムの棒の高さは(ほぼ)同じになるはずです。
動画で、Justin がキーワード引数 size=4 を rng.random() に渡して4つの乱数を一度に生成していたのに気づいたかもしれません。この方法は for ループより効率的です。ただしこの演習では、ハッカースタティスティクスが「同じ実験を何度も繰り返す」実践であることを体験するため、あえて for ループを書いていきます。
この演習はコースの一部です
Pythonで学ぶ統計的思考(パート1)
演習の手順
- 乱数生成器
rngを、シード42で初期化してください。 - 乱数を格納するための要素数10万の空配列
random_numbersを初期化してください。必ずnp.empty(100000)を使いましょう。 rng.random()を使って10万個の乱数を生成し、配列random_numbersに格納するforループを書いてください。そのためにrange(100000)を反復します。random_numbersのヒストグラムを描画してください。ここでは乱数生成器の挙動を確認するだけなので、軸ラベルは付けなくて構いません。描画できたら Submit を押してプロットを表示しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Instantiate and seed the random number generator
# Initialize random numbers: random_numbers
random_numbers = ____
# Generate random numbers by looping over range(100000)
for i in ____:
random_numbers[i] = ____
# Plot a histogram
_ = plt.hist(____)
# Show the plot
plt.show()