2013-01-04 11 views
8

ho un array di NumPy che assomiglia a questo:Come ottenere i valori da una matrice NumPy utilizzando più indici

arr = [100.10, 200.42, 4.14, 89.00, 34.55, 1.12] 

Come posso ottenere più valori da questo array per indice:

Per esempio , come posso ottenere i valori nelle posizioni indice 1, 4 e 5?

Stavo cercando qualcosa di simile, che non è corretto:

arr[1, 4, 5] 
+0

Per quello che vale, quello che hai provato è come fare l'indicizzazione multidimensionale in NumPy. – Iguananaut

+1

Inoltre, per quello che vale, * non * ha una matrice numpy. Hai una lista (che potrebbe essere facilmente convertita in una matrice numpy). – mgilson

risposta

25

Prova in questo modo:

>>> arr = np.array([100.10, 200.42, 4.14, 89.00, 34.55, 1.12]) 
>>> arr[[1,4,5]] 
array([ 200.42, 34.55, 1.12]) 

E per gli array multidimensionali:

>>> arr = np.arange(9).reshape(3,3) 
>>> arr 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 
>>> arr[[0, 1, 1], [1, 0, 2]] 
array([1, 3, 5]) 
+0

le grandi menti pensano allo stesso modo: P –

+0

e se gli indici fossero 2D? è possibile indicizzare un array 2D usando un array 2D come indice? – dashesy

4

tu eri vicino

>>> print arr[[1,4,5]] 
[ 200.42 34.55 1.12] 
Problemi correlati