2017-03-08 129 views
0

訪問第二索引I具有2 d numpy的陣列,我轉換成3-d陣列通過使用:在3-d numpy的陣列

trainSet = numpy.reshape(trainSet, (trainSet.shape[0], 1, trainSet.shape[1])) 

我的問題是我試圖在調整值第一軸(新的)。但是,無論我嘗試什麼,我都無法確定如何訪問新軸中的1。我試着打印報表的多種作用,例如

print(trainSet[0][0][0]) 
print(trainSet[1][0][1]) 

但無論我怎麼努力,我不能打印出任何1的,僅僅是2-d數組的內容。我知道這是一個三維陣列,因爲當我使用

print(trainSet.shape) 

我得到

(12, 1, 793) 

任何幫助將非常感激!

+1

您可以用像'M [i,j,k]','M [:,0,:]'等表達式爲一個3d數組索引 – hpaulj

回答

1

一個指的是特定維度的大小,而不是數組的內容。數組[[5 5]]具有形狀(1,2),但是,由於這個原因,您並不真正期望它的值必須包含1,對嗎?如果插入一個長度爲1的維數將使嵌套級別增加1,那麼2d數組[[ab] [cd]]將變爲[[ab] [cd]]]或[[[ab]], ] [[cd]]]或[[[a] [b]] [[c] [d]]],取決於您插入新軸的位置。

特別是,沒有新的元素。

0

如果我沒搞錯你的問題,你想要的是

trainSet[:,0,:] 
0

值的數量保持不變,你只是創建3D結構而不是二維結構。