Хотя np.swapaxes
может быть решением для ответа, я бы предложил написать функцию, которая отображает информацию об оригинальном размере и сохраняет данные без изменений.
Например, из SCIFIO Я беру tif-файл (focal1.tif в EmbryoCE.zip, размер которого 425 * 434 * 205):
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
fname = 'focal1.tif'
data = io.imread(fname)
np.shape(data) #shows (205, 434, 425)
data[0] # The first layer in original Z direction
plt.imshow(data[0], cmap = "gray", aspect = 'equal')
plt.colorbar()
plt.show()
print('Shape of matrix projection:',np.shape(data[0])) # shows (434, 425)
Ссылка на изображение
Вы можетелегко построить поперечное сечение плоскости XY с помощью data[number of slice]
.
и добавить функцию, которая показывает информацию о размере оригинала:
def pic_size(data_matrix):
size = print('size of image: (',np.shape(data_matrix)[2],',',np.shape(data_matrix)[1],',',np.shape(data_matrix)[0],')')
return size
pic_size(data) #shows size of image: ( 425 , 434 , 205 )
Кстати,изменение формы не очень хорошая идея, оно выдает изображение с точками, которые отображаются в периодическом порядке, но не содержат никакой полезной информации.
Ссылка на изображение