Numpy.randomにおけるshuffleとpermutationの違い

563 ワード

shuffleとpermutationの違い
関数shuffleとpermutationは、元の配列を再洗浄する(すなわち、元の要素の順序をランダムに乱す).違いはshuffleが直接元の配列で操作し,元の配列の順序を変更し,戻り値がないことである.permutationは元の配列で直接操作するのではなく,新しい順序を乱す配列を返し,元の配列を変更しない.
例:
a = np.arange(12)
print a
np.random.shuffle(a)
print a
print 
a = np.arange(12)
print a
b = np.random.permutation(a)
print b
print a
出力:
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[11  6  4 10  3  0  7  1  9  2  5  8]

[ 0  1  2  3  4  5  6  7  8  9 10 11]
[10  4  8 11  1  7  6  2  0  9  5  3]
[ 0  1  2  3  4  5  6  7  8  9 10 11]