shuffle() 方法将序列的所有元素随机排序。需要导入的包是:from sklearn.utils import shuffle
之前接触的shuffle函数都是参数是单列表的,如下:
from sklearn.utils import shuffle
a = [1, 2, 3, 4, 5]
a = shuffle(a)
print(a)
输出的结果是:
[5, 3, 1, 2, 4]
但是最近的代码中出现了多参数,即多列表,那么它是如何打乱的呢?我们通过一段代码来了解一下。
a、b、c都是二维列表,我们将a、b、c作为shuffle的参数洗牌打乱一下,发现结果是二维列表行内的顺序不变,列的顺序发生了变化,并且a、b、c三个二维列表的变化是一致的。代码如下:
from sklearn.utils import shuffle
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]
c = [[19, 20, 21],
[22, 23, 24],
[25, 26, 27]]
a, b, c = shuffle(a, b, c)
print(a)
print(b)
print(c)
输出的结果是:
[[7, 8, 9], [4, 5, 6], [1, 2, 3]]
[[16, 17, 18], [13, 14, 15], [10, 11, 12]]
[[25, 26, 27], [22, 23, 24], [19, 20, 21]]
再看另一个例子,在这里a、b、c列表不变,我们只将这三个列表索引为0的内容打乱,发现a、b、c只有第一行发生了改变,并且第一行改变的顺序是一致的。
from sklearn.utils import shuffle
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]
c = [[19, 20, 21],
[22, 23, 24],
[25, 26, 27]]
a[0], b[0], c[0] = shuffle(a[0], b[0], c[0])
print(a[0])
print(b[0])
print(c[0])
输出的结果是:
[2, 1, 3]
[11, 10, 12]
[20, 19, 21]