numpy.random.Generator.permuted#

方法

random.Generator.permuted(x, axis=None, out=None)#

沿著軸 axis 隨機置換 x

shuffle 不同,沿著給定軸的每個切片都會獨立於其他切片進行洗牌。

參數:
xarray_like,至少一維

要洗牌的陣列。

axisint,選用

在此軸中的 x 切片會被洗牌。每個切片都獨立於其他切片進行洗牌。如果 axis 為 None,則扁平化的陣列會被洗牌。

outndarray,選用

如果給定,這將是洗牌後陣列的目的地。如果 out 為 None,則會傳回陣列的洗牌副本。

傳回值:
ndarray

如果 out 為 None,則會傳回 x 的洗牌副本。否則,洗牌後的陣列會儲存在 out 中,並傳回 out

另請參閱

shuffle
permutation

注意事項

方法 shufflepermuted 之間的重要區別在於它們如何處理 axis 參數,可以在 處理軸參數 中找到。

範例

建立 numpy.random.Generator 實例

>>> rng = np.random.default_rng()

建立測試陣列

>>> x = np.arange(24).reshape(3, 8)
>>> x
array([[ 0,  1,  2,  3,  4,  5,  6,  7],
       [ 8,  9, 10, 11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20, 21, 22, 23]])

洗牌 x 的列

>>> y = rng.permuted(x, axis=1)
>>> y
array([[ 4,  3,  6,  7,  1,  2,  5,  0],  # random
       [15, 10, 14,  9, 12, 11,  8, 13],
       [17, 16, 20, 21, 18, 22, 23, 19]])

x 未被修改

>>> x
array([[ 0,  1,  2,  3,  4,  5,  6,  7],
       [ 8,  9, 10, 11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20, 21, 22, 23]])

若要就地洗牌 x 的列,請將 x 作為 out 參數傳遞

>>> y = rng.permuted(x, axis=1, out=x)
>>> x
array([[ 3,  0,  4,  7,  1,  6,  2,  5],  # random
       [ 8, 14, 13,  9, 12, 11, 15, 10],
       [17, 18, 16, 22, 19, 23, 20, 21]])

請注意,當給定 out 參數時,傳回值為 out

>>> y is x
True