保留Numpy 3D数组中切片的维度

8

我有一个3D数组,a,形状为a.shape = (10, 10, 10)

当进行切片时,维度会自动压缩,即

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

我想保留维数的数量,但也确保被压缩的维度是显示1的维度,即

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

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

1个回答

13

谢谢,不过我应该补充一下,我正在实现一个__getitem__方法,所以我不愿意改变切片参数 - 请参见编辑 - Brendan
1
NumPy的索引规则已经足够复杂了。创建一个改变这些规则的__getitem__可能会带来麻烦。要求对象的用户理解NumPy的规则并传递正确的索引是否更好呢? - unutbu
非常好,您介意指向numpy文档中解释这种行为的部分吗? - Bastian Venthur
1
@BastianVenthur:我已经添加了一份带有文档链接的解释。 - unutbu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接