2014-04-02 9 views

risposta

8

non so se c'è un modo per farlo chiazza di petrolio. Si potrebbe elencare gli indici in modo esplicito, ovviamente:

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

Oppure utilizzare r_ per aiutare, che probabilmente sarebbe più conveniente se volevamo più righe dal capo o la coda:

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

Grazie per la risposta! Ho trovato che 'np.vstack ((x [0: 2,:], x [-2:,:]))' è ancora più veloce. Non riesco davvero a capire perché, ma la tua soluzione è decisamente più elegante. – Mattijn

+1

Se le prestazioni sono un problema, si potrebbe voler provare anche 'np.concatenate ([x [: 2], x [-2:]])', per vedere come si comporta. – DSM

2

In alternativa, è possibile utilizzare gli indici per rimuovere come

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