ランダム順列


要素のランダム順列

順列とは、要素の配置を指します。たとえば、[3、2、1]は[1、2、3]の順列であり、その逆も同様です。

NumPy Randomモジュールは、このための2つのメソッドを提供します: shuffle()permutation()


配列のシャッフル

シャッフルとは、要素の配置をインプレースで変更することを意味します。つまり、アレイ自体にあります。

次の配列の要素をランダムにシャッフルします。

from numpy import random
import numpy as np

arr = np.array([1, 2, 3, 4, 5])

random.shuffle(arr)

print(arr)

このshuffle()メソッドは、元の配列に変更を加えます。


配列の順列の生成

次の配列の要素のランダム順列を生成します。

from numpy import random
import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(random.permutation(arr))

このpermutation()メソッドは、再配置された配列を返します(元の配列は変更されません)。