Pythonのrandomモジュールは、ランダムな数値や要素の選択を行うための標準ライブラリです。
この記事では、randomモジュールの基本的な使い方や、主な関数を紹介します。
randomモジュールとは
randomモジュールは、乱数(ランダムな数値)を生成するために使います。
まず初めにモジュールをインポートします。
コピーしました!
import random
基本的な数値の生成
1 random.random()
0以上1未満の浮動小数点数を生成します。次のコードでは、結果が出力されます。
コピーしました!
print(random.random())
2 random.randint(a, b)
a以上b以下のランダムな整数を生成します。
コピーしました!
print(random.randint(1, 10))
このコードでは、例えば9が出力されます。
3 random.uniform(a, b)
aからbの範囲でランダムな浮動小数点数を生成します。
コピーしました!
print(random.uniform(1.5, 3.5))
このコードでは、例えば次のような結果が出力されます。
2.726616432551331
シーケンスから要素を選択する
リストや文字列からランダムに要素を選ぶ関数を紹介します。
4 random.choice(seq)
コピーしました!
fruits = ['リンゴ', 'バナナ', 'オレンジ']
print(random.choice(fruits))
例えば、オレンジが選ばれて出力されます。
5 random.choices(seq, k=n)
重複を許可して、シーケンスからk個の要素を選びます。
コピーしました!
fruits = ['リンゴ', 'バナナ', 'オレンジ']
print(random.choices(fruits, k=3))
出力結果は、例えば[‘オレンジ’, ‘リンゴ’, ‘オレンジ’]のようになります。
6 random.sample(seq, k=n)
重複なしで、シーケンスからk個の要素を選びます。
コピーしました!
fruits = ['リンゴ', 'バナナ', 'オレンジ']
print(random.sample(fruits, k=2))
出力結果は、例えば[‘バナナ’, ‘オレンジ’]のようになります。
7 random.shuffle(seq)
リストの要素をその場でランダムに並べ替えます。
コピーしました!
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
例えば、[4, 5, 1, 2, 3]のように出力されます。
擬似乱数とシードの設定
擬似乱数とは
擬似乱数は、アルゴリズムによって生成される乱数です。コンピュータ完全なで生成する乱数は、完全なランダムではなく、数学的な計算に基づいて乱数を生成します。そのため、同じ初期値(シード)を設定すると、同じ乱数が生成されます。
8 シードの設定
シードを設定すると、同じ乱数を再現できます。
コピーしました!
random.seed(42) # シード値を42に設定
print(random.random()) # 出力は 0.6394267984578837 となります
print(random.randint(1, 10)) # 出力は 1
同じシードを再設定すれば、同じ乱数列が生成されます。
コピーしました!
random.seed(42)
print(random.random()) # 指定したシード値に基づいて、0.6394267984578837 が出力されます
print(random.randint(1, 10)) # 出力は 1
特定の分布に基づく乱数生成
randomモジュールは、さまざまな確率分布に基づく乱数を生成できます。
9 正規分布(ガウス分布)
random.gauss(mu, sigma)は、平均mu、標準偏差sigmaの正規分布に従う乱数を生成します。
例えば、次はmu = 0、sigma = 1 の正規分布に従う乱数を生成します。
コピーしました!
print(random.gauss(0, 1))
本メディアの記事等の内容には細心の注意を払っておりますが、正確性を保証するものではありません。もし記事内に誤りや不正確な情報がございましたら、こちらのお問い合わせフォームよりご連絡ください。
当メディアは、読者の皆様からのご指摘を大切にし、内容の見直しや修正を行うことで、より有益な記事を提供していく所存です。皆様のご理解とご協力をお願いいたします。