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


Python NumPy Random Generator permutation方法用法及代码示例


NumPy 随机生成器的 permutation(~) 方法返回一个新数组,其中的值已打乱。

注意

要就地打乱值,请使用 shuffle(~)

此外, permutation(~) permuted(~) 之间的区别在于,前者对二维数组的行或列进行打乱,但 permuted(~) 独立于其他行或列对值进行打乱。请参阅下面的示例以进行说明。

参数

1.x | intarray-like

  • 如果 xint ,则随机打乱并返回 np.arange(x)

  • 如果 xarray-like ,则返回一个具有随机打乱值的新数组。

2. axis | int | optional

执行洗牌的轴。默认情况下,axis=0

返回值

NumPy 数组。

例子

传递一个整数

要获取 [0,1,2,3,4] 的打乱数组:

import numpy as np
rng = np.random.default_rng(seed=42)
rng.permutation(5)



array([4, 2, 3, 1, 0])

请注意,这相当于 rng.permutation(np.arange(5))

传入一个数组

随机打乱数字数组:

rng = np.random.default_rng(seed=42)
rng.permutation([5,2,6,1])



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

请注意,打乱一维数组时,行为与 permuted(~) 完全相同。

设定轴

考虑以下二维数组:

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.permutation(x)   # axis=0



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

随机打乱二维数组的列:

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



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

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy Random Generator | permutation method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。