2010-08-27 7 views
15

Ceci est une question très simple, mais je n'ai pas trouvé la réponse. Comment appeler un élément dans un tableau numpy?Comment appeler un élément dans un tableau numpy?

import numpy as np 

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

print arr(0,0) 

Le code ci-dessus ne fonctionne pas.

Répondre

29

Il suffit d'utiliser des crochets à la place:

print arr[1,1] 
+8

+1. Extra info: les tableaux numpy sont basés sur 0, ce qui signifie que si vous voulez obtenir le 1 du tableau, vous devez utiliser 'arr [0,0]' au lieu de 'arr [1,1]'. – kennytm

1

TL; DR:

En utilisant 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 

À Long:

Espérons que cela aide votre compréhension:

>>> 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 

Mais pour comprendre pourquoi slicing est utile, en plusieurs dimensions:

>>> 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]])