NumPyで配列から要素を選択する
今回はNumPyを使って、配列から要素を選択するやり方を説明します。
リストから要素を選択するには、random.choice()を使います。
random.choice
random.choice()は、指定された一次元配列から要素を選択します。
random.choice(配列, size=None, replace=True, p=None)
引数 | 内容 |
配列 | 選択対象の配列 |
size | 出力形状。None(デフォルト)の場合は単一の値が返される |
replace | 同じ要素を選択するかどうか。True/Falseを指定。Falseを指定すると同じ要素は選択されない |
p | 各エントリーに関連付けられた確率。合計で1になる必要がある |
メモ
引数を順番通りに指定した場合は、引数名を省略することができます。
単純な選択
一番単純な例は、以下の通りです。
引数に整数を1つだけ与えると、0~指定した整数未満の値を選択します。
1 2 |
>>> np.random.choice(3) 0 |
メモ
「import numpy as np」でNumPyをインポートしています。
配列から選択
一次元配列「1, 2, 3, 4, 5」から一つ要素を選択します。
1 2 |
>>> np.random.choice([1,2,3,4,5]) 5 |
要素を複数選択する
配列から要素を複数選択する場合は、引数sizeを使います。
1 2 |
>>> np.random.choice([1,2,3,4,5], size=2) array([3, 5]) |
要素の選択結果を二次元配列にする
要素の選択結果を二次元配列にしてみましょう。
1 2 3 |
>>> np.random.choice([1,2,3,4,5], size=[2,3]) array([[1, 2, 2], [5, 2, 2]]) |
同じ要素を選択しない
配列から同じ要素を選択しない場合は、引数replaceにFalseを指定します。
1 2 |
>>> np.random.choice([1,2,3,4,5], size=4, replace=False) array([1, 5, 4, 3]) |
選択する確率を指定する
配列から要素を選択する確率を指定するには、引数pを使います。
以下の例は、要素1が選択される確率は60%、他の要素は10%になります。
1 2 |
>>> np.random.choice([1,2,3,4,5], size=4, p=[0.6,0.1,0.1,0.1,0.1]) array([1, 1, 1, 5]) |