使用NumPy交换数组维度

时间:2017-02-02 17:07:53

标签: python numpy

当我使用PIL加载图像并将其转换为NumPy数组时:

image = Image.open("myimage.png")
pixels = np.asarray(image)

数据存储为[x] [y] [频道]。即,像素[3,5,0]的值将是(3,5)像素,以及该像素的红色分量。

但是,我正在使用一个库,要求图像采用[channel] [x] [y]格式。因此,我想知道如何进行这种转换?

我知道NumPy有一个reshape函数,但这实际上并不允许你根据我的需要“交换”维度。

有任何帮助吗?谢谢!

1 个答案:

答案 0 :(得分:5)

为了按照您想要的顺序获取尺寸,您可以按如下方式使用转置方法:

image = Image.open("myimage.png")
pixels = np.asarray(image).transpose(2,0,1)