我需要为交叉验证生成拆分,假设 s 是记录的索引
s = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
现在我想随机打乱数据并将其拆分为 5 折,通常我想要这样的输出
s = [[1 5 4 6], [2,3, 19,20], [... ], [... ], [.. ]]
注意:每个数组中的编号应该是唯一的,不能重复
我知道我可以使用 chunk() 但是在 chunk 中你只能像 1-4, 5-8,.... 那样按顺序做。
谁能帮我解决这个问题?
请您参考如下方法:
使用 random.shuffle 打乱你的数组并将其分成 5 block :
对于 Python2 使用
import random
s = range(1, 21)
random.shuffle(s)
s = [s[i::5] for i in range(5)]
或者对于 Python3:
import random
s = list(range(1, 21))
random.shuffle(s)
s = [s[i::5] for i in range(5)]
