2013-01-04 33 views
8

Tôi có một mảng NumPy trông như thế này:Làm thế nào để có được các giá trị từ một mảng NumPy sử dụng nhiều chỉ số

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

Làm thế nào tôi có thể nhận được nhiều giá trị từ mảng này bởi chỉ số:

Ví dụ , làm thế nào tôi có thể nhận được các giá trị tại các vị trí chỉ mục 1, 4 và 5?

Tôi đã cố gắng một cái gì đó như thế này, đó là không chính xác:

arr[1, 4, 5] 
+0

Đối với những gì nó có giá trị, những gì bạn đã cố gắng là cách bạn làm chỉ mục đa chiều trong NumPy. – Iguananaut

+1

Ngoài ra, đối với những gì nó có giá trị, bạn * không * có một mảng numpy. Bạn có một danh sách (có thể dễ dàng chuyển đổi thành một mảng có nhiều mảng). – mgilson

Trả lời

25

Hãy thử như thế này:

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

Và đối với mảng đa chiều:

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

suy nghĩ tuyệt vời như nhau: P –

+0

nếu chỉ số là 2D? có thể lập chỉ mục một mảng 2D bằng cách sử dụng mảng 2D làm chỉ mục không? – dashesy

4

bạn đã gần

>>> print arr[[1,4,5]] 
[ 200.42 34.55 1.12] 
Các vấn đề liên quan