【发布时间】:2019-07-01 01:33:26
【问题描述】:
我有一个 numpy 数组“my_data”。我正在尝试随机拆分此数据集。但是,当我使用以下代码执行此操作时,我得到一个“train”数组和一个“test”数组。训练数组和测试数组在列中有一些行。
training_idx = np.random.randint(my_data.shape[0], size=split_size)
test_idx = np.random.randint(my_data.shape[0], size=len(my_data)-split_size)
train, test = my_data[training_idx,:], my_data[test_idx,:]
我的意图是首先随机找到训练数组,然后在 my_data 中剩下的任何行不在训练数组中,作为测试数组的一部分。
numpy 有没有办法做到这一点? (我避免使用 sklearn 来拆分我的数据)
我在这里参考了这篇文章,以获取我的数据集。 How to split/partition a dataset into training and test datasets for, e.g., cross validation?
如果我按照这篇文章的逻辑进行编码,我最终会得到训练和测试数据集,其中训练和测试中有一些冗余行。我打算制作没有共同行的训练和测试数据集。
【问题讨论】:
-
尝试随机排列(使用
randint)索引,然后将该排列分成两部分。一个用于训练,另一个用于测试。