2016-12-05 82 views
-2

當我編寫如下所示的一些測試代碼時,我得到「索引錯誤太多」。Python數組中的索引錯誤太多

我不知道爲什麼這個代碼不工作...

a = np.arange(40).reshape(4,10) 
print a 
in_ = np.array(a, dtype=np.float32) 
print in_ 
in_ = in_[:,:,::-1] 
print in_ 
+1

in_ = in _ [:,: - 1]應該是這樣的 – Backtrack

+1

你在哪一行得到錯誤?我猜可能是'in _ [:,:, - 1]',但我想真正的問題是你在做什麼? –

+0

我嘗試使用像素級別修改圖像文件。 –

回答

0

我原來的測試代碼如下。我想念我做測試陣列的時候。

im = Image.open('/data/synthia/RGB/ap_000_02-11-2015_18-02-19_000162_2_Rand_6.png') 
in_ = np.array(im, dtype=np.float32) 
in_ = in_[:,:,::-1] 
in_ -= np.array((104.00698793,116.66876762,122.67891434)) 
in_ = in_.transpose((2,0,1)) 
+0

看起來像這裏的「im'是一個3d數組。它的「形狀」是什麼。在你的問題中,你創建了一個2D數組,而不是一個3D數組。 – hpaulj

0

當你做.reshape(4,10)你改變你的陣列成一個二維數組大小爲4×10。這個數組有2個維度,因此它只有2個索引。

當你調用[:,:,::-1]你提到你的二維數組3個incides:::::-1。它會導致錯誤。