文章目录
将数组打乱随机排列 两种方法:
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)
(2) 对多维数组进行打乱排列时,默认是列维度。
arr = np.arange(12).reshape(3,4)
print(arr)
np.random.shuffle(arr)
print(arr)
2. np.random.permutation(x)
- 随机排列一个序列,或者返回一个排列的范围。
- 如果x是一个多维数组,则只会沿着它的第一个索引进行随机排列。
(1) 可直接生成一个随机排列的数组
np.random.permutation(10)
(2) 一维数组
np.random.permutation([1, 4, 9, 12, 15])
(3) 多维数组
arr = np.arange(9).reshape((3, 3))
print(arr)
arr2 = np.random.permutation(arr)
print(arr)
print(arr2)
3. 区别
从代码可以看出,np.random.shuffle(x)
改变自身数组,np.random.permutation(x)
不改变自身数组。