当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。