Python で範囲内のランダムな整数を生成する
-
Python の特定の範囲間で
random.randint()
関数を使用してランダムな整数を生成する -
Python の特定の範囲間で
random.randrange()
関数を使用してランダムな整数を生成する -
Python の特定の範囲間で
random.sample()
関数を使用してランダムな整数を生成する -
Python で
NumPy
モジュールを使用して特定の範囲間のランダムな整数を生成する
Python は、データ分析に非常に役立つツールです。実際のシナリオを扱う場合、状況をシミュレートして処理するためにランダムな値を生成する必要があります。
Python には random
モジュールと NumPy
モジュールがあり、乱数を簡単に操作および生成するための効率的な方法を利用できます。
このチュートリアルでは、Python の特定の範囲の間にいくつかのランダムな整数を生成します。
Python の特定の範囲間で random.randint()
関数を使用してランダムな整数を生成する
randint()
関数は、指定された範囲の間でランダムな整数を生成するために使用されます。開始位置と終了位置は、パラメーターとして関数に渡されます。
例えば、
import random
x = random.randint(0, 10)
print(x)
出力:
8
この関数で乱数のリストを生成するには、以下に示すように、for
ループでリスト内包表記を使用できます。
import random
x = [random.randint(0, 9) for p in range(0, 10)]
print(x)
出力:
[1, 6, 6, 5, 8, 8, 5, 5, 8, 4]
このメソッドは整数値のみを受け入れることに注意してください。
Python の特定の範囲間で random.randrange()
関数を使用してランダムな整数を生成する
randrange()
関数も範囲内の乱数を返し、整数値のみを受け入れますが、ここでは step
と呼ばれる非常に便利なパラメーターを指定するオプションがあります。step
パラメーターを使用すると、特定の数で割り切れる乱数を求めることができます。デフォルトでは、このパラメーターは 1 です。
例えば、
import random
x = random.randrange(0, 10, 2)
print(x)
出力:
4
出力は 2 で割り切れることに注意してください。同じリスト内包表記を使用して、以下に示すように、この関数で乱数のリストを生成できます。
import random
x = [random.randrange(0, 10, 2) for p in range(0, 10)]
print(x)
出力:
[8, 0, 6, 2, 0, 6, 8, 6, 0, 4]
Python の特定の範囲間で random.sample()
関数を使用してランダムな整数を生成する
この関数を使用すると、生成する乱数の範囲と総数を指定できます。また、重複する値が存在しないことも保証します。次の例は、この関数の使用方法を示しています。
import random
x = random.sample(range(10), 5)
print(x)
出力:
[7, 8, 5, 9, 6]
Python で NumPy
モジュールを使用して特定の範囲間のランダムな整数を生成する
NumPy
モジュールには、このタスクを実行し、必要な数のランダム整数を生成して numpy 配列に格納するために使用できる 3つの関数もあります。
これらの関数は、numpy.random.randint()
、numpy.random.choice()
、および numpy.random.uniform()
です。次のコードは、これらの関数の使用方法を示しています。
例えば、
import numpy as np
x1 = np.random.randint(low=0, high=10, size=(5,))
print(x1)
x2 = np.random.uniform(low=0, high=10, size=(5,)).astype(int)
print(x2)
x3 = np.random.choice(a=10, size=5)
print(x3)
出力:
[3 2 2 2 8]
[8 7 9 2 9]
[0 7 4 1 4]
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn