2017-08-16 105 views
-2

假設有對應於訓練樣本X拆分numpy的陣列有效地

>>> y 
array([0, 0, 1, 1, 2, 2]) 

如果我使用numpy.array_split直接變得

>>> np.array_split(y,2) 
[array([0, 0, 1]), array([1, 2, 2])] 

如何可以拆分Y和X成標籤向量y 2個文件夾。因此y變成

>>> y1 
array([0, 1, 2]) 
>>> y2 
    array([0, 1, 2]) 

PS:每個標籤具有相同數量的樣本。我想將它們等效地拆分成文件夾。每個文件夾每個標籤只有一個樣本。

+1

'y [:: 2]'和'y [1 :: 2]'? – Divakar

+1

你是什麼意思的「文件夾?」 –

+0

非常感謝。 – Mozzie

回答

1

以下解決方案是5倍高效切片解決方案。所以,爲了完整起見,我在此添加它。

a, b = y.reshape(y.shape[0]//2, 2).T 
print(a) 
#array([0, 1, 2]) 
print(b) 
#array([0, 1, 2])