首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在nilearn/numpy中交换3D图像的轴

在nilearn/numpy中交换3D图像的轴
EN

Stack Overflow用户
提问于 2020-05-05 16:53:35
回答 2查看 373关注 0票数 1

我正在处理一些神经成像数据,我的扫描维度是(100,150,100)。我目前正在使用nibabel格式的文件。

有没有一种很好的方法来交换坐标轴?例如,我希望我的图像是(100,100,150)。我更希望这是nibabel格式的,但如果需要,我可以将图像转换为numpy ndarray,然后在那里进行工作。在这种情况下,在numpy中有没有一种很好的方法来做到这一点?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-05 17:01:18

如果您使用numpy,请使用:

代码语言:javascript
运行
复制
import numpy as np

arr = np.swapaxes(arr, 1, 2)

这将交换轴1和2(分别为150和100大小的2维和3维)。

示例代码:

代码语言:javascript
运行
复制
arr = np.zeros((100,150,100))
arr = np.swapaxes(arr, 1, 2)
print(arr.shape)

输出:

代码语言:javascript
运行
复制
(100, 100, 150)
票数 3
EN

Stack Overflow用户

发布于 2020-05-05 17:31:49

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

代码语言:javascript
运行
复制
>>> import numpy as np
>>> data = np.empty((4, 5, 6))
>>> data.shape
(4, 5, 6)
>>> np.transpose(data, axes=(1, 2, 0)).shape
(5, 6, 4)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61609319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档