Python 使用NumPy交换数组维度

Python 使用NumPy交换数组维度,python,numpy,Python,Numpy,当我使用PIL加载图像并将其转换为NumPy数组时: image = Image.open("myimage.png") pixels = np.asarray(image) 数据存储为[x][y][channel]。即,像素[3,5,0]的值将是(3,5)像素,并且该像素的红色分量 但是,我使用的库要求图像的格式为[channel][x][y]。因此,我想知道如何才能进行这种转换 我知道NumPy有一个重塑功能,但这实际上不允许您按照我的要求“交换”维度 有什么帮助吗?谢谢 为了按照您想要的

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

image = Image.open("myimage.png")
pixels = np.asarray(image)
数据存储为[x][y][channel]。即,像素[3,5,0]的值将是(3,5)像素,并且该像素的红色分量

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

我知道NumPy有一个
重塑
功能,但这实际上不允许您按照我的要求“交换”维度


有什么帮助吗?谢谢

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

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

为了按照所需的顺序获得尺寸,可以使用如下转置方法:

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

您可以使用
转置
方法,而不是
重塑
方法有交换、滚动轴和转置。所有这些方法都允许您以一种或另一种方式排列轴。您可以使用
转置
方法,而不是
重塑
方法有交换、滚动轴和转置。所有这些都允许您以某种方式排列轴。