开发者

Preserving the dimensions of a slice from a Numpy 3d array

开发者 https://www.devze.com 2022-12-27 10:41 出处:网络
I have a 3d array, a, of shape say a.shape = (10, 10, 10) When slicing, the dimensions are squeezed automatically i.e.

I have a 3d array, a, of shape say a.shape = (10, 10, 10)

When slicing, the dimensions are squeezed automatically i.e.

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

I'd like to preserve the number of dimensions but also ensure that the dimension that was squeezed is the one that shows 1 i.e.

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

I have thought of re-cas开发者_如何学运维ting the array and passing ndmin but that just adds the extra dimensions to the start of the shape tuple regardless of where the slice came from in the array a.


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

a[:,:,5] is an example of basic slicing.

a[:,:,[5]] is an example of integer array indexing -- combined with basic slicing. When using integer array indexing the resultant shape is always "identical to the (broadcast) indexing array shapes". Since [5] (as an array) has shape (1,), a[:,:,[5]] ends up having shape (10,10,1).

0

精彩评论

暂无评论...
验证码 换一张
取 消