Pythonで乱数作成する場合、下記2種類の方法が選択肢に上がるかと思います。
①Python標準ライブラリの「random」モジュールを使用する方法
②numpyライブラリの「random」メソッドを使用する方法
①rondom(Python標準ライブラリ)
以降で、randomモジュールの各種メソッドを用いた乱数作成方法を解説致します。
①-1 random.random():0.0以上1.0未満のランダムな浮動小数点を返す。
・random()メソッドは、0.0以上1.0未満のランダムな浮動小数点を返します。
・整数生成方法:①random()メソッドで浮動小数点生成 → ②10の倍数を掛け1以上の数値を生成 → ③math.floor()メソッドで小数点以下を切り捨て
①-2 random.uniform(a, b):任意の範囲内の浮動小数点を返す。
・uniform(a, b)メソッドは、a ~ bの範囲内のランダムな浮動小数点を返します。
・aとbはどちらが大きくても大丈夫です。(例、random.uniform(100, -100)。<= a=100, b=-100)
①-3 random.randrange(start, stop, step):任意の範囲・ステップの整数
・randrange(start, stop, step)メソッドは、start ~ stopの中でstepの数値分を区切った範囲内のランダムな整数を返します。
①-4 random.randint(a, b):任意の範囲の整数
・randint(a, b)メソッドは、a ~ b(a, bは各々整数)の範囲内のランダムな整数を返します。
①-5 [random.random() for i in range(要素数)]:ランダムな浮動小数点のリストを生成
・[random.random() for i in range(要素数)]の内包表記を用いたリストによって、任意の要素数を持ったランダムな浮動小数点のリストを生成します。
①-6 [random.randint(a, b) for i in range(要素数)]:ランダムな整数のリストを生成
・[random.randint(a, b) for i in range(要素数)]の内包表記を用いたリストによって、a ~ b(a, bは各々整数)の範囲内の任意の要素数を持ったランダムな整数のリストを生成します。
②numpy.random(Numpyライブラリのrandomメソッド)
以降で、numpyモジュールのrandomメソッドを用いた乱数作成方法を解説致します。
②-1 numpy.random.rand(): 0.0以上1.0未満のランダムな浮動小数点を返す。
・numpy.random.rand()メソッドは、0.0以上1.0未満のランダムな浮動小数点を返します。
・rand()に引数を渡すことで配列のサイズを指定出来ます。
np.random.rand(3).tolist() # 引数に1つの整数を渡すと、1次元配列が返される。
# 実行結果例
# [0.6195269900299928, 0.2795557293671578, 0.554934971578252]
np.random.rand(3, 3).tolist() # 3 x 3 の配列
# 実行結果例
# [[0.7375006993213833, 0.3181123752021908, 0.32465573556182725],
# [0.8306225407940159, 0.3757988790208008, 0.9486298332890694],
# [0.07837908803742744, 0.39153393145008486, 0.14396495722168512]]
・整数生成方法:①random.rand()メソッドで浮動小数点生成 → ②10の倍数を掛け1以上の数値を生成 → ③math.floor()メソッドで小数点以下を切り捨て
②-2 numpy.random.random_sample(): 0.0以上1.0未満のランダムな浮動小数点を返す。
・numpy.random.random_sample()メソッドは、0.0以上1.0未満のランダムな浮動小数点を返します。
・random_sample()に引数を渡すことで配列のサイズを指定出来ます。
・rand()メソッドとの違いは、サイズの指定をタプル型で指定する点。
np.random.random_sample(3).tolist() # 引数に1つの整数を渡すと、1次元配列が返される。
# 実行結果例
# [0.13179039510209756, 0.31068756364232786, 0.06833369837452408]
np.random.random_sample((3, 3)).tolist() # 3 x 3 の配列
# 実行結果例
# [[0.13404017454459305, 0.13508637267274148, 0.6442539168300345],
# [0.36432597689015955, 0.09773750936594694, 0.32396056766591697],
# [0.25548539504852286, 0.3328221154524844, 0.27556160007552677]]
・整数生成方法:①random.rand()メソッドで浮動小数点生成 → ②10の倍数を掛け1以上の数値を生成 → ③math.floor()メソッドで小数点以下を切り捨て
②-3 numpy.random.randint(low, high, size): 任意の範囲の整数
・randint(low, high, size)メソッドは、low ~ highの範囲内のランダムな整数を単数またはリストで返します。(sizeで大きさを指定)
コメント