2014-04-02 89 views

回答

8

我不知道是否有做一個圓滑的方式。你可以列出的指標明確,當然:

>>> x[[0,1,-2,-1]] 
array([[1, 2], 
     [3, 4], 
     [7, 8], 
     [9, 0]]) 

或者使用r_幫忙,這很可能會更方便,如果我們希望從頭部或尾部更多行:

>>> x[np.r_[0:2, -2:0]] 
array([[1, 2], 
     [3, 4], 
     [7, 8], 
     [9, 0]]) 
+0

感謝您的回答!我發現'np.vstack((x [0:2,:],x [-2:,:]))'更快。我不明白爲什麼,但你的解決方案絕對更優雅。 – Mattijn

+1

如果性能問題,您可能也想嘗試'np.concatenate([x [:2],x [-2:]])',看看它是如何執行的。 – DSM

2

另外,您可以使用索引刪除爲

mask = np.ones(len(x), dtype=np.bool) 
mask[2:3] = False # that you want to remove 
y = x[mask] 
相關問題