使用NumPy交换数组维度

Kar*_*rus 0 python numpy

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

image = Image.open("myimage.png")
pixels = np.asarray(image)
Run Code Online (Sandbox Code Playgroud)

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

但是,我使用的库需要图像格式为[channel] [x] [y].因此,我想知道如何进行这种转换?

我知道NumPy有一个reshape功能,但这实际上并不允许你根据我的需要"交换"尺寸.

有帮助吗?谢谢!

tmw*_*n26 5

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

image = Image.open("myimage.png")
pixels = np.asarray(image).transpose(2,0,1)
Run Code Online (Sandbox Code Playgroud)