每the docs:
一个整数,i
,返回作为i:i+1
相同的值除返回的对象的维数是通过1
降低。特别是,第p
个元素为整数(以及所有其他条目:
)的选择元组将返回尺寸为N - 1
的相应子数组。如果N = 1
那么返回的对象是一个数组标量。
因此,当您的索引是一个整数,该索引的值(s)为(是)返回,相应的轴被移除。在一个维度上的行为是你所期望的:
In [6]: a = np.arange(5); a
Out[6]: array([0, 1, 2, 3, 4])
In [7]: a[2]
Out[7]: 2
In [8]: a[2].shape
Out[8]:()
a
是一维的,a[2]
是0维。
在更高的尺寸,如果是X
4维和形状(1783,1,96,96)
的,然后 X[11,:,:,:]
返回所有其中第一轴线索引等于11,然后该轴被移除的值。所以X[11,:,:,:].shape
是(1,96,96)
。
当片指定的范围内,如a[2:3]
则该范围内的所有的值被返回,并且轴不被去除:
In [9]: a[2:3]
Out[9]: array([2])
In [10]: a[2:3].shape
Out[10]: (1,)
同样,X[11:12, :, :, :]
具有形状(1,1,96,96)
。
或者你可以说'X [[11],:] .shape' – jez