【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

    
def main():
    # 配列生成
    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]
    
    
if __name__ == "__main__":
    main()

おすすめ記事

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

シェア&フォローお願いします!