2014-02-11 56 views
0

我有一個看起來像這樣IndexError在numpy的陣列

for a in range(0,128): 
     for b in range(0,128): 
      A = np.zeros((1,3)) 
      B = np.zeros((1,3)) 
      for i in range(0,3): 
       A[i] = I[a,b,i] 

但是一個代碼,它給了我下面的錯誤

A[i] = I[a,b,i] 
IndexError: index 1 is out of bounds for axis 0 with size 1 

謝謝你,提前。

+0

'A'只包含一行,所以'A [1]'會引發一個IndexError。 –

回答

3

np.zeros((1, 3))創建了一個「行」和三個「列」的數組:

array([[ 0., 0., 0.]]) # note "list of lists" 

如果你想索引直入列,你可以簡單地創建數組:

A = np.zeros(3) 

並獲得

array([ 0., 0., 0.]) 

然後你的循環將按照目前的寫法工作。

另外,您將需要索引行第一:

for index in range(3): 
    A[0, index] = ... 
+0

numpy數組被索引爲'A [0,index]'。 –

+0

我認爲兩者都可以工作,但好點的做法很好;謝謝 – jonrsharpe