python中的统一洗牌

问题描述

我有一个包含 N 条记录、一些特征和两个目标(0 和 1)的数据集。目标的比率是4/1。数组中有 80% 的记录的目标为 0,然后是 20% 的目标为 1 的记录。

我需要为这些目标均匀地打乱我的数组。

我现在使用 np.shuffle,因为我将数据拆分为手动训练和测试样本(我将混洗数组的前 K 个值用于训练,将 (1 - K) 用于测试)。我也在看 model_selection.train_test_split,但没有找到任何关于改组方式的细节。

解决方法

如果 numpy 是可以接受的,那么你想要

import numpy as np

# x is the array
generator = np.random.default_rnd()
generator.shuffle(x)