2017-08-04 75 views
0

我有兩個數據集new_train_db1(具有大小3000x200)和new_train_db2(具有大小3000x200)和通訊員標籤train_labels(3000x1)。我想抽取new_train_db1,new_train_db2train_labels並保留100個樣本。我有以下代碼:挑選從陣列隨機樣本在python

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)] 

其實,我想要的是每次運行代碼時都保留相同的樣本。我該怎麼做?

回答

2

問題是,你使用了三次np.randon.randint,所以顯然結果每次都會有所不同。爲什麼不只運行一次,並隨處使用相同的索引。

您可以定義一個一次性操作,在該操作中使用numpy.random.randint函數生成隨機索引,並將其存儲在文件中並寫入一些額外的行,您可以在其中讀取該文件並使用它來選擇每個行上的相同行跑。您可以使用獲得指數 -

ind = np.random.randint(3000,size = (100,)) 

您可以保存和加載使用numpy.savenumpy.load陣列。

如果您打算僅在一個會話中使用相同的行,並且不希望它們在所有會話中保持相同,則不必保存和加載。

+0

你確定我的三個數組使用不同的索引嗎? –