當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NumPy Random Generator shuffle方法用法及代碼示例


NumPy Random 的 shuffle(~) 方法會就地隨機打亂 NumPy 數組。

注意

要獲取新的打亂值數組,請改用 permutation(~)

參數

1.x | NumPy arrayMutableSequence

要洗牌的數組。

2. axis | int | optional

要洗牌的軸。默認情況下,axis=0

返回值

None - 此操作就地完成。

例子

基本用法

考慮以下 NumPy 數組:

import numpy as np
x = np.arange(10)
x



array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

要打亂此 NumPy 數組:

rng = np.random.default_rng()
rng.shuffle(x)
x



array([4, 0, 2, 9, 6, 3, 1, 5, 8, 7])

請注意Shuffle[洗牌]是如何就地完成的。

設定軸

考慮以下二維數組:

x = np.arange(12).reshape((3,4))
x



array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

默認情況下, axis=0 ,這意味著行被打亂:

rng = np.random.default_rng(seed=42)
rng.shuffle(x)   # axis=0
x



array([[ 8,  9, 10, 11],
       [ 4,  5,  6,  7],
       [ 0,  1,  2,  3]])

要打亂列,請設置 axis=1

rng.shuffle(x, axis=1)
x



array([[ 2,  0,  3,  1],
       [ 6,  4,  7,  5],
       [10,  8, 11,  9]])

設置種子

為了能夠重現隨機性,請像這樣設置種子:

rng = np.random.default_rng(seed=42)
x = np.arange(10)
rng.shuffle(x)
x



array([5, 6, 0, 7, 3, 2, 4, 9, 1, 8])

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy Random Generator | shuffle method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。