numpy:沿轴解压缩数组

时间:2016-09-20 14:38:29

标签: numpy

假设我有一张RGB图像:

from skimage import data
img = data.astronaut()
print(img.shape)  # (512, 512, 3)

是否有简洁的numpy命令沿着颜色通道解压缩它:

R, G, B = np.unpack(img, 2)  # ?

我正在做的是使用理解:

R, G, B = (img[:, :, i] for i in range(3))

但是没有更简单的命令吗?

3 个答案:

答案 0 :(得分:1)

或者,您可以使用np.rollaxis -

R,G,B = np.rollaxis(img,2)

答案 1 :(得分:0)

您可以将长度3尺寸转置到前面,然后将其解压缩:

R, G, B = img.transpose((2, 0, 1))

答案 2 :(得分:0)

或者,您可以使用np.split

R, G, B = np.split(img, img.shape[-1], axis=-1)

如果阵列的形状(高度,宽度,通道),您可以使用np.dsplit沿深度尺寸分割:

R, G, B = np.dsplit(img, img.shape[-1])