【NumPy】配列から要素のランダム抽出

この記事では、Python言語とNumPyを用いて配列から要素をランダム抽出する方法をソースコード付きで解説します。

配列から要素のランダム抽出

NumPy配列では、numpy.random.choiceで配列から要素をランダム抽出できます。

書式

b = numpy.random.choice(a, n, replace=True)

配列aから要素n個をランダムに抽出します。
(replaceがTrueなら重複あり)

b = numpy.random.choice(a, n, p= [0.1, 0.9])

各要素の出現確率pを指定して配列aから要素n個をランダムに抽出します。

ソースコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8
import numpy as np

    
# 配列生成
a = np.array([1, 2, 3])
    
# 配列のランダム抽出
c1 = np.random.choice(a, 3, replace=True) # 重複あり
c2 = np.random.choice(a, 3, replace=False) # 重複なし
c3 = np.random.choice(a, 3,  p=[0.1, 0.8, 0.1]) # 出現率pを指定
    
# 結果表示
print(c1) # [2 3 2]
print(c2) # [1 2 3]
print(c3) # [2 2 2]

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

関連記事