Numpy remove a dimension from np array

前端 未结 5 1467
南方客
南方客 2020-12-14 15:02

I have some images I want to work with, the problem is that there are two kinds of images both are 106 x 106 pixels, some are in color and some are black and white.

5条回答
  •  别那么骄傲
    2020-12-14 15:43

    You could use numpy's fancy indexing (an extension to Python's built-in slice notation):

    x = np.zeros( (106, 106, 3) )
    result = x[:, :, 0]
    print(result.shape)
    

    prints

    (106, 106)
    

    A shape of (106, 106, 3) means you have 3 sets of things that have shape (106, 106). So in order to "strip" the last dimension, you just have to pick one of these (that's what the fancy indexing does).

    You can keep any slice you want. I arbitrarily choose to keep the 0th, since you didn't specify what you wanted. So, result = x[:, :, 1] and result = x[:, :, 2] would give the desired shape as well: it all just depends on which slice you need to keep.

提交回复
热议问题