2010-08-27 66 views

Trả lời

29

Chỉ cần sử dụng dấu ngoặc vuông thay vì:

print arr[1,1] 
+8

+1. Thông tin thêm: mảng numpy là 0-based, có nghĩa là nếu bạn muốn lấy 1 từ mảng, bạn nên sử dụng 'arr [0,0]' thay vì 'arr [1,1]'. – kennytm

1

TL; DR:

Sử dụng 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 

Trong Long:

Hy vọng rằng điều này giúp trong việc tìm hiểu của bạ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 

Nhưng để hiểu được tại sao slicing là hữu ích, trong những không gian hơn:

>>> 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]]) 
Các vấn đề liên quan