在nilearn/numpy中交换三维图像的轴

在nilearn/numpy中交换三维图像的轴,numpy,nibabel,nilearn,Numpy,Nibabel,Nilearn,我正在处理一些神经成像数据,我的扫描尺寸是100150100。我目前正在处理nibabel格式的文件 有没有交换轴的好方法?例如,我希望我的图像是100100150。我希望这是在尼伯尔格式,但如果需要的话,我可以得到一个numpy ndarray图像,然后在那里做的工作以及。在这种情况下,在numpy有没有一种很好的方法可以做到这一点 谢谢你的帮助 如果您正在使用numpy,请使用: import numpy as np arr = np.swapaxes(arr, 1, 2) 这将交换轴1

我正在处理一些神经成像数据,我的扫描尺寸是100150100。我目前正在处理nibabel格式的文件

有没有交换轴的好方法?例如,我希望我的图像是100100150。我希望这是在尼伯尔格式,但如果需要的话,我可以得到一个numpy ndarray图像,然后在那里做的工作以及。在这种情况下,在numpy有没有一种很好的方法可以做到这一点


谢谢你的帮助

如果您正在使用numpy,请使用:

import numpy as np

arr = np.swapaxes(arr, 1, 2)
这将交换轴1和轴2,轴1和轴2是第二和第三维度,尺寸分别为150和100

示例代码:

arr = np.zeros((100,150,100))
arr = np.swapaxes(arr, 1, 2)
print(arr.shape)
输出:

(100, 100, 150)

如果您正在使用numpy,请使用:

import numpy as np

arr = np.swapaxes(arr, 1, 2)
这将交换轴1和轴2,轴1和轴2是第二和第三维度,尺寸分别为150和100

示例代码:

arr = np.zeros((100,150,100))
arr = np.swapaxes(arr, 1, 2)
print(arr.shape)
输出:

(100, 100, 150)
您可以使用Ehsan的答案中提到的numpy.swapaxes,它交换两个轴。您还可以使用,它允许您以任何所需的顺序更改两个或多个轴。例如:

>>>将numpy作为np导入 >>>数据=np.empty4,5,6 >>>数据形状 4, 5, 6 >>>np.A,轴=1,2,0.1形状 5, 6, 4 您可以使用Ehsan的答案中提到的numpy.swapaxes,它交换两个轴。您还可以使用,它允许您以任何所需的顺序更改两个或多个轴。例如:

>>>将numpy作为np导入 >>>数据=np.empty4,5,6 >>>数据形状 4, 5, 6 >>>np.A,轴=1,2,0.1形状 5, 6, 4
为什么要这样做?现在是X,Y,Z吗?为什么要这样做?现在是X,Y,Z吗?