1、numpy.random.shuffle()
函数定义:random.shuffle(x)
用途:打乱序列的顺序。注意:此函数仅沿多维数组的第一个轴对数组进行打乱。子数组的顺序改变了,但它们的内容保持不变。
参数:
x:n维数组或可变序列。即要打乱的数组、列表或可变序列。
返回值:
None:在数组的原地址进行打乱,不产生新的数组
示例:
>>> import numpy as np
#例1 打乱0-9的顺序数组
>>> arr = np.arange(10)
>>> np.random.shuffle(arr)
>>> arr
array([2, 9, 6, 5, 8, 1, 0, 7, 4, 3])
#例2 打乱一个二维3*3的数组
>>> arr = np.arange(9).reshape((3, 3))
>>> arr
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> np.random.shuffle(arr)
>>> arr
array([[6, 7, 8],
[3, 4, 5],
[0, 1, 2]])
2、numpy.random.permutation()
函数定义:random.permutation(x)
用途:随机排列序列,或返回排列范围。注:如果 x 是一个多维数组,它只是沿着它的 第一个索引随机排序。
参数:
x: 整数或类数组。如果x是整数,则相当于传入np.arange(x)。如果 x 是一个数组,则复制并随机排列元素。
返回值:
out:ndarray。随机排列后的新数组。
示例:
#例1,传入整数
>>> np.random.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
#例2,传入一维列表或数组
>>> np.random.permutation([1, 4, 9, 12, 15])
array([15, 1, 9, 4, 12])
#例3,传入多维数组
>>> arr = np.arange(9).reshape((3, 3))
>>> arr
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> np.random.permutation(arr)
array([[6, 7, 8],
[0, 1, 2],
[3, 4, 5]])