2017-02-04 36 views
1

x是一個3x3 numpy的數組,其中包含以下內容:numpy的高級索引

import numpy as np 
x = np.array([[ 1., 2., 3.], 
       [ 4., 5., 6.], 
       [ 7., 8., 9.]]) 

是有一些索引,可以給我下面的子陣:

array([[ 1., 2.], 
     [ 5., 6.]]) 
+1

你嘗試過什麼? – Sid

+0

是的東西像'x [(0,2),0:2]'但無濟於事。我無法獲得像我提到的那樣的子集。 –

回答

4

您可以使用integer array indexing與陣列的元組:

>>> rows = np.array([[0, 0], 
...     [1, 1]], dtype=np.intp) 
>>> columns = np.array([[0, 1], 
...      [1, 2]], dtype=np.intp) 
>>> x[rows, columns] 
array([[ 1., 2.], 
     [ 5., 6.]]) 
+0

謝謝,實際上根據你的建議,下面的內容似乎也適用(我正在尋找一行): 'x [[[0,0],[1,1]],[[0,1] ,[1,2]]]' –

+0

好的,我不知道你在尋找短代碼,所以我選擇了顯式的代碼。這些行代表什麼和列是什麼更清楚一點。 :) – MSeifert

-3

可以使用

x[:2,:2] 

解決你的問題

+1

這不是工作解決方案。 – MaLiN2223