2016-06-11 61 views
0

我有一個N維一個numpy的陣列,其中N可以變化:索引具有未知數量的索引

arr1 = np.array([0,0,1,0]) 
arr2 = np.array([[0,0],[0,0],[0,1],[0,0]]) 

我需要能夠傳遞數組和元組/ INT,並獲得在該整數位置返回:

assert myfunc(arr1, 2) == 1 
assert myfunc(arr2, (2, 1)) == 1 

我覺得這具有隻是不點擊出於某種原因明顯和簡單的答案。

回答

3

我不知道我是否正確理解你的問題;但是,您可以直接使用元組作爲索引來檢索特定的元素。

例如;

arr1 = np.array([0,0,1,0]) 
arr2 = np.array([[0,0],[0,0],[0,1],[0,0]]) 
arr3 = np.array([[[0,0],[0,0],[0,1],[0,0]], [[0,0],[0,0],[0,1],[0,0]]]) 

assert arr1[2] == 1 
assert arr2[(2, 1)] == 1 
assert arr3[(1,2,1)] == 0 
+0

這就是我所需要的。沒有意識到我可以傳遞一個元組(我只是完成了切片)。我知道這很簡單,謝謝! – Chris