文章目录


将数组打乱随机排列 两种方法:


​np.random.shuffle(x)​​:在原数组上进行,改变自身序列,无返回值。


​np.random.permutation(x)​​:不在原数组上进行,返回新的数组,不改变自身数组。

1. np.random.shuffle(x)

(1) 一维数组

import numpy as np

arr = np.arange(10)
print(arr)
np.random.shuffle(arr)
print(arr)

np.random.shuffle(x)与np.random.permutation(x)_一维数组

(2) 对多维数组进行打乱排列时,默认是列维度。

arr = np.arange(12).reshape(3,4)
print(arr)
np.random.shuffle(arr)
print(arr)

np.random.shuffle(x)与np.random.permutation(x)_一维数组_02

2. np.random.permutation(x)


  • 随机排列一个序列,或者返回一个排列的范围。
  • 如果x是一个多维数组,则只会沿着它的第一个索引进行随机排列。

(1) 可直接生成一个随机排列的数组

np.random.permutation(10)

np.random.shuffle(x)与np.random.permutation(x)_多维数组_03

(2) 一维数组

np.random.permutation([1, 4, 9, 12, 15])

np.random.shuffle(x)与np.random.permutation(x)_数组_04

(3) 多维数组

arr = np.arange(9).reshape((3, 3))
print(arr)
arr2 = np.random.permutation(arr)
print(arr)
print(arr2)

np.random.shuffle(x)与np.random.permutation(x)_数组_05

3. 区别

从代码可以看出,​​np.random.shuffle(x)​​​改变自身数组,​​np.random.permutation(x)​​不改变自身数组。