Numpy.randomにおけるshuffleとpermutationの違い
563 ワード
shuffleとpermutationの違い
関数shuffleとpermutationは、元の配列を再洗浄する(すなわち、元の要素の順序をランダムに乱す).違いは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]