2017-04-19 214 views
1

我有兩個相關的numpy陣列,Xy。我需要從X中選擇n隨機行並將其存儲在一個數組中,對應的值爲y,並附加它隨機選擇的點的索引。從numpy陣列中隨機選擇

我有另一個數組index存儲的索引列表,我不想採樣。

我該怎麼做?

樣本數據:

index = [2,3] 
X = np.array([[0.3,0.7],[0.5,0.5] ,[0.2,0.8], [0.1,0.9]]) 
y = np.array([[0], [1], [0], [1]]) 

如果這些X的隨機選擇(其中n=2):

randomylSelected = np.array([[0.3,0.7],[0.5,0.5]]) 

所需的輸出將是:

index = [0,1,2,3] 
randomlySelectedY = [0,1] 

我怎樣才能做這個?

+0

那麼,是'randomylSelected'給予或將要產生的? – Divakar

+0

通過從'X'中隨機選擇'n'行來創建。 @Divakar – scutnex

+0

你能否澄清一下,當你的'index'沒有被採樣時,它是如何從'[2,3]'變成'[0,1]'的? 'index'的用途是什麼,它與其他數組有什麼關係? – MSeifert

回答

6

您可以創建隨機指數與np.random.choice

n = 2 # for 2 random indices 
index = np.random.choice(X.shape[0], n, replace=False) 

然後你只需要索引你的陣列,其結果是:

x_random = X[index] 
y_random = Y[index] 
+2

這裏不需要'np.arange' – Eric