NumPyのランダム数

ランダム数とは何ですか?

ランダムな数は、常に異なる数字を持つことを意味するものではありません。ランダムとは、論理的に予測できないことを意味します。

擬似ランダムと本質的なランダム

コンピュータはプログラムで動作し、プログラムは権威あるコマンドセットです。したがって、ランダム数を生成するためにはある種のアルゴリズムが必要です。

ランダム数を生成するプログラムが存在する場合、それを予測することができますので、それは本質的なランダム数ではありません。

生成アルゴリズムで生成されたランダム数は、擬似ランダム数と呼ばれます。

本当にランダムな数を生成できますか?

はい。私たちのコンピュータ上で本質的なランダム数を生成するには、外部の源からランダムデータを取得する必要があります。外部の源は、通常、キーボードのタップ、マウスの動き、ネットワークデータなどです。

セキュリティ(例えば、暗号化キー)に関連する場合や、ランダム性が基盤のアプリケーション(例えば、デジタルルーレット)の場合を除いて、私たちは本質的なランダム数は必要ありません。

このチュートリアルでは、擬似ランダム数を使用します。

ランダム数の生成

NumPyはrandomモジュールを提供してランダム数を処理します。

インスタンス

0から100までのランダムな整数を生成します:

from numpy import random
x = random.randint(100)
print(x)

インスタンスを実行

ランダムな浮動小数点の生成

randomモジュールの rand() メソッドは0から1までのランダムな浮動小数点数を返します。

インスタンス

0から100までのランダムな浮動小数点数を生成します:

from numpy import random
x = random.rand()
print(x)

インスタンスを実行

ランダムな配列の生成

NumPyでは、上の例の2つの方法を使用してランダムな配列を作成できます。

整数

randint() メソッドは受け入れます サイズ パラメータ、その中で配列の形状を指定できます。

インスタンス

0から100までのランダムな整数を含む1次元配列を生成します:

from numpy import random
x=random.randint(100, size=(5))
print(x)

インスタンスを実行

インスタンス

3行の2次元配列を生成します。各行には0から100までのランダムな整数が含まれます:

from numpy import random
x = random.randint(100, size=(3, 5))
print(x)

インスタンスを実行

浮動小数点数

rand() このメソッドは、配列の形状を指定することも許可されます。

インスタンス

5つのランダムな浮動小数点数を含む1次元配列を生成します:

from numpy import random
x = random.rand(5)
print(x)

インスタンスを実行

インスタンス

3行の2次元配列を生成します。各行には5つのランダムな数が含まれます:

from numpy import random
x = random.rand(3, 5)
print(x)

インスタンスを実行

配列からランダムな数を生成

choice() このメソッドは、値の配列に基づいてランダムな値を生成することができます。

choice() このメソッドは、配列をパラメータとして受け取り、その中の1つの値をランダムに返します。

インスタンス

配列の値のうち1つを返します:

from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)

インスタンスを実行

choice() このメソッドは、値の配列を返すことも許可されます。

1つを追加してください サイズ パラメータは指定された配列の形状で指定されます。

インスタンス

配列のパラメータ(3、5、7、9)で構成される二次元配列を生成します:

from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

インスタンスを実行