NumPyの乱数


乱数とは何ですか?

乱数は、毎回異なる数を意味するわけではありません。ランダムとは、論理的に予測できないものを意味します。

疑似ランダムと真のランダム。

コンピューターはプログラムで動作し、プログラムは決定的な命令セットです。つまり、乱数を生成するためのアルゴリズムも必要です。

乱数を生成するプログラムがあれば、それを予測できるので、真にランダムではありません。

生成アルゴリズムによって生成された乱数は、疑似乱数と呼ばれます。

本当に乱数を作ることができますか?

はい。コンピューターで真の乱数を生成するには、外部ソースからランダムデータを取得する必要があります。この外部ソースは、通常、キーストローク、マウスの動き、ネットワーク上のデータなどです。

セキュリティに関連する場合(暗号化キーなど)またはアプリケーションの基礎がランダム性(デジタルルーレットホイールなど)でない限り、真の乱数は必要ありません。

このチュートリアルでは、疑似乱数を使用します。


乱数を生成する

NumPyは、random乱数を処理するモジュールを提供します。

0〜100のランダムな整数を生成します。

from numpy import random

x = random.randint(100)

print(x)

ランダムフロートを生成する

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

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

from numpy import random

x = random.rand()

print(x)


ランダム配列を生成する

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

整数

このrandint()メソッドはsize 、配列の形状を指定できるパラメーターを取ります。

0〜100の5つのランダムな整数を含む1次元配列を生成します。

from numpy import random

x=random.randint(100, size=(5))

print(x)

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

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()を返すこともできます

size配列の形状を指定するパラメーターを追加します。

配列パラメーター(3、5、7、および9)の値で構成される2次元配列を生成します。

from numpy import random

x = random.choice([3, 5, 7, 9], size=(3, 5))

print(x)