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


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


NumPy Random 的 permuted(~) 方法返回一個新的 NumPy 數組,其中的值已打亂。

注意

要就地打亂值,請使用 shuffle(~)

此外, permutation(~) permuted(~) 之間的區別在於,前者對二維數組的行或列進行打亂,但 permuted(~) 獨立於其他行或列對值進行打亂。請參閱下麵的示例以進行說明。

參數

1.x | NumPy arrayMutableSequence

要洗牌的數組。

2. axis | int | optional

要洗牌的軸。默認情況下, axis=None ,這意味著數組中的所有值都會被打亂。

3. out | NumPy array | optional

如果給出,則結果存儲在 out 中。默認情況下,創建並返回一個新的 NumPy 數組。

返回值

NumPy 數組。

例子

打亂一維數組

打亂一維數組:

import numpy as np
rng = np.random.default_rng(seed=42)
rng.permuted([5,2,6,1])



array([1, 6, 2, 5])

請注意,打亂一維數組時,行為與 permutation(~) 完全相同。

打亂二維數組

考慮以下二維數組:

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



array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
打亂所有值

默認情況下, axis=None ,這意味著數組中的所有值都會被打亂:

rng = np.random.default_rng(seed=42)
rng.permuted(x)   # axis=None



array([[ 0,  7,  6,  9],
       [11,  3,  5,  2],
       [ 4, 10,  1,  8]])
打亂每列的值

要打亂每列中的值,請設置 axis=0

rng = np.random.default_rng(seed=42)
rng.permuted(x, axis=0)



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

請注意,每行的隨機排列與其他列中的值的排序方式無關。這是 permuted(~) permutation(~) 之間的主要區別。

打亂每行的值

要打亂每行中的值,請設置 axis=1

rng = np.random.default_rng(seed=42)
rng.permuted(x, axis=1)



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

相關用法


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