2010-08-27 48 views
15

Esta es una pregunta realmente simple, pero no encontré la respuesta. ¿Cómo llamar a un elemento en una matriz numpy?¿Cómo llamar a un elemento en una matriz numpy?

import numpy as np 

arr = np.array([[1,2,3,4,5],[6,7,8,9,10]]) 

print arr(0,0) 

El código anterior no funciona.

Respuesta

29

sólo tiene que utilizar corchetes en su lugar:

print arr[1,1] 
+8

+1. Información adicional: las matrices numpy están basadas en 0, lo que significa que si quieres obtener el 1 de la matriz, debes usar 'arr [0,0]' en lugar de 'arr [1,1]'. – kennytm

1

TL; DR:

Usando slicing:

>>> import numpy as np 
>>> 
>>> arr = np.array([[1,2,3,4,5],[6,7,8,9,10]]) 
>>> 
>>> arr[0,0] 
1 
>>> arr[1,1] 
7 
>>> arr[1,0] 
6 
>>> arr[1,-1] 
10 
>>> arr[1,-2] 
9 

En Long:

Esperemos que esto ayuda en su comprensión:

>>> import numpy as np 
>>> np.array([ [1,2,3], [4,5,6] ]) 
array([[1, 2, 3], 
     [4, 5, 6]]) 
>>> x = np.array([ [1,2,3], [4,5,6] ]) 
>>> x[1][2] # 2nd row, 3rd column 
6 
>>> x[1,2] # Similarly 
6 

Pero para apreciar por qué slicing es útil, en más dimensiones:

>>> np.array([ [[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]] ]) 
array([[[ 1, 2, 3], 
     [ 4, 5, 6]], 

     [[ 7, 8, 9], 
     [10, 11, 12]]]) 
>>> x = np.array([ [[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]] ]) 

>>> x[1][0][2] # 2nd matrix, 1st row, 3rd column 
9 
>>> x[1,0,2] # Similarly 
9 

>>> x[1][0:2][2] # 2nd matrix, 1st row, 3rd column 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: index 2 is out of bounds for axis 0 with size 2 

>>> x[1, 0:2, 2] # 2nd matrix, 1st and 2nd row, 3rd column 
array([ 9, 12]) 

>>> x[1, 0:2, 1:3] # 2nd matrix, 1st and 2nd row, 2nd and 3rd column 
array([[ 8, 9], 
     [11, 12]]) 
Cuestiones relacionadas