2017-03-08 131 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结构而不是二维结构。