Python 显示numpy阵列中的多个图像

Python 显示numpy阵列中的多个图像,python,arrays,numpy,matplotlib,data-visualization,Python,Arrays,Numpy,Matplotlib,Data Visualization,我有一个numpy数组(data.npy),它存储多个样本图像。我想查看/保存所有图像。我尝试过以下方法: img_array=np.load('data.npy') i = 0 while i < len(img_array): plt.imshow(img_array[i], cmap='gray') plt.show() i += 1 您正在将一个(4100100)数组传递给imshow(),但文档说它要求通道维度排在最后: 因此,使用moveaxis()或rol

我有一个numpy数组(data.npy),它存储多个样本图像。我想查看/保存所有图像。我尝试过以下方法:

img_array=np.load('data.npy')
i = 0
while i < len(img_array):
   plt.imshow(img_array[i], cmap='gray')
   plt.show()
   i += 1
您正在将一个
(4100100)
数组传递给
imshow()
,但文档说它要求通道维度排在最后:

因此,使用
moveaxis()
rollaxis()
更改维度的顺序:

您正在将一个
(4100100)
数组传递到
imshow()
,但文档说它要求频道维度排在最后:


因此,使用
moveaxis()
rollaxis()
来更改尺寸的顺序:

根据@John Zwinck的回答,以下代码对我来说似乎运行良好

In [12]: for idx, el in enumerate(img_array):
    ...:     plt.imshow(np.moveaxis(img_array[idx], 0, -1), cmap='gray')
    ...:
np.moveaxis
围绕数组的轴移动。在这里,它将原始数组中的第一个轴移动到最后一个轴

In [13]: a[10].shape
Out[13]: (4, 100, 100)

In [14]: np.moveaxis(a[10], 0, -1).shape
Out[14]: (100, 100, 4)

根据@John Zwinck的回答,下面的代码对我来说似乎运行良好

In [12]: for idx, el in enumerate(img_array):
    ...:     plt.imshow(np.moveaxis(img_array[idx], 0, -1), cmap='gray')
    ...:
np.moveaxis
围绕数组的轴移动。在这里,它将原始数组中的第一个轴移动到最后一个轴

In [13]: a[10].shape
Out[13]: (4, 100, 100)

In [14]: np.moveaxis(a[10], 0, -1).shape
Out[14]: (100, 100, 4)

您拥有的是一个二进制文件,而不是数组。如何从中提取数据取决于创建文件时数据的存储方式。img_数组的形状是什么?@ChrisMueller img_数组的形状是:(22,4,100,100)您拥有的是一个二进制文件,而不是数组。如何从中提取数据取决于创建文件时数据的存储方式。
img_数组的形状是什么?@ChrisMueller img_数组的形状是:(22,41000,100)