gpt4 book ai didi

python - 将数据集拆分为两个非冗余的 numpy 数组?

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:32 25 4
gpt4 key购买 nike

我有一个 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?

如果我按照这篇文章的逻辑进行编码,我最终会得到训练和测试数据集,其中训练和测试中有一些冗余行。我打算制作不常见行的训练和测试数据集。

最佳答案

正在关注 this answer你可以这样做:

train_idx = np.random.randint(my_data.shape[0], size=split_size)    
mask = np.ones_like(my_data, dtype=bool)
mask[train_idx] = False
train, test = my_data[~mask], my_data[mask]

不过,正如 Poojan 所建议的,更自然的方法是对数据进行切片排列。

permuted = np.random.permutation(my_data)
train, test = permuted[:split_size], permuted[split_size:]

关于python - 将数据集拆分为两个非冗余的 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com