NumPyでランダムサンプリング|配列を2次元や範囲指定でランダムに抽出する方法

スポンサーリンク

今回は、Python NumPyでランダムサンプリングを行う4つの簡単な方法に焦点を当てます。

では、さっそく始めましょう

ランダムサンプリングとは、定義された種類のデータからランダムに値を選択し、それを提示することで、さらに利用することができます

このトピックでは、以下の関数を見ていきます。

  1. NumPy random_sample()メソッド
  2. NumPy ranf()メソッド
  3. NumPy random_integers()メソッド
  4. NumPy randint()メソッド

スポンサーリンク

1. NumPy random_sample() メソッドによるランダムサンプリング

random_sample()メソッドを使用すると、データのサンプリングを行い、ランダムなデータを簡単に選択することができます

0.0 – 1.0]の間のランダムなサンプルしか選択されません。

サンプルは1つだけでなく、配列全体もランダムな値で作成できます。

以下の構文を見てください。

random.random_sample()

例えば、以下の様になります。

下の例では,まずランダムサンプリングを行い,1つの乱数値を生成しています.さらに、random_sample()関数にパラメータとしてsizeを渡して、乱数値を含む2次元配列を作成しました。

乱数値の範囲は0.0から1.0だけであることに注意してください。

また、random_sample()関数はfloat型の乱数値を生成します。

import numpy as np
 
ran_val = np.random.random_sample()
print ("Random value : ", ran_val)
 
ran_arr = np.random.random_sample(size =(2, 4))
print ("Array filled with random float values: ", ran_arr)

結果は以下の通りです。

Random value :  0.3733413809567606
Array filled with random float values:  [[0.45421908 0.34993556 0.79641287 0.56985183]
                                        [0.88683577 0.91995939 0.16168328 0.35923753]]

2. random_integers()関数

random_integers() 関数を使用すると、ランダムな値や、整数型のランダムな値の多次元配列を生成することができます

つまり、Integer型のランダムな値を生成します。

さらに、乱数が選択される整数値の範囲を自由に選択することができます

構文は以下の様な感じです。

random_integers(low, high, size)
  • low: 選択される乱数値の最小値/限界値。乱数値はこの低い値以下にはならない。
  • 高。高:選択される乱数値の最高値/限界値。high: 選択される乱数値の最高値。乱数値はこの値を超える値を持たない。
  • サイズ。size: 配列を構成する行と列の数。

例えば、以下の様になります。

例:この例では、5-10 の間の値のみを持つ 1 次元のランダム値配列を作成しました。

さらに、同じコンセプトで多次元配列も作成しました。

import numpy as np
 
ran_val = np.random.random_integers(low = 5, high =10 , size = 3)
print ("Random value : ", ran_val)
 
ran_arr = np.random.random_integers(low = 5, high =10 , size = (2,4))
print ("Array filled with random float values: ", ran_arr)

結果は以下の通りです。

Random value :  [10  5  9]
Array filled with random float values:  [[ 8  8  9  6]
                                        [ 6 10  8 10]]

3. 3. randint() 関数

randint() 関数は、random_integers() 関数と同じような動作をします。

指定された整数の範囲内でランダムな値を持つ配列を作成します。

例えば、以下の様になります。

import numpy as np
 
ran_val = np.random.randint(low = 5, high =10 , size = 3)
print ("Random value : ", ran_val)

結果は以下の通りです。

Random value :  [5 8 9]

4. ranf()関数

繰り返しになりますが、ranf()関数は、機能的にはrandom_sample()メソッドに似ています。

0.0から1.0までのfloat型の乱数のみを生成します。

例えば、以下の様になります。

import numpy as np
 
ran_val = np.random.ranf()
print ("Random value : ", ran_val)

結果は以下の通りです。

Random value :  0.8328458165202546

まとめ

何か質問があれば、お気軽にコメントください。

Pythonプログラミングに関連するこのような記事のために、私たちと一緒にご期待ください。

タイトルとURLをコピーしました