我有两个数据集new_train_db1
(大小为3000x200)和new_train_db2
(大小为3000x200)和对应标签train_labels
(3000x1)。我想要对new_train_db1
,new_train_db2
和train_labels
进行二次采样,并保留100个样本。我有以下代码:
np.random.seed(0)
reduced_train_db1 = new_train_db1[np.random.randint(new_train_db1.shape[0], size=100), :]
np.random.seed(0)
reduced_train_db2 = new_train_db2[np.random.randint(new_train_db2.shape[0], size=100), :]
np.random.seed(0)
reduced_labels = train_labels[np.random.randint(train_labels.shape[0], size=100)]
实际上,我想要的是每次运行代码时都保留相同的样本。我怎么能这样做?
答案 0 :(得分:2)
问题是你使用np.randon.randint
三次,所以每次结果都会有所不同。为什么不运行一次并在任何地方重复使用相同的索引。
您可以定义执行一次性操作,使用numpy.random.randint
函数生成随机索引并将其存储在文件中并写入一些其他行,其中您读取此文件并使用它来选择相同的文件每次运行的行。您可以使用 -
ind = np.random.randint(3000,size = (100,))
您可以使用numpy.save
和numpy.load
保存并加载数组。
如果您打算仅在一个会话期间使用相同的行,并且不一定希望它们在所有会话中都相同,则您也不必另外保存和加载。