从Numpy 3d数组中保留切片的尺寸

时间:2010-04-14 18:50:40

标签: python numpy slice

我有一个3d阵列a,形状为a.shape = (10, 10, 10)

切片时,尺寸自动为squeezed,即

a[:,:,5].shape = (10, 10)

我想保留维度的数量,但也要确保被挤压的维度是显示1 的维度。

a[:,:,5].shape = (10, 10, 1)

我想过重新构建数组并传递ndmin,但这只是将额外的维度添加到形状元组的开头,而不管切片来自数组a的位置。< / p>

1 个答案:

答案 0 :(得分:13)

a[:,:,[5]].shape
# (10,10,1)

a[:,:,5]basic slicing的一个例子。

a[:,:,[5]]integer array indexing - combined with basic slicing的一个示例。使用整数数组索引时,结果形状始终为"identical to the (broadcast) indexing array shapes"。由于[5](作为数组)具有形状(1,)a[:,:,[5]]最终形成(10,10,1)