Python中的3D体积操作.. 在3D numpy数组中选择x/y/z行/列

1 投票
1 回答
929 浏览
提问于 2025-04-18 09:01

我刚开始接触Numpy中的ndarrays,所以请多多包涵。

我有一个3D的原始数据,已经导入到numpy中,数据类型是uint8,形状是(309L, 138L, 134L),分别代表Z、Y、X三个维度。

这个原始图像的尺寸是(x,y,z),也就是134、138、309。

这个数组叫做ThreeD

我可以用下面的代码绘制ThreeD的一个Z方向的“切片”,也就是XY平面:

ThreeD[70]

(选择第70行)

我也可以用下面的代码绘制ThreeD的一个Y方向的“切片”,也就是XZ平面:

ThreeD[:,70]

(选择第70列)

不过,当然还有第三个维度!前两个维度比较容易选择,但我现在不知道怎么选择第三个维度,也就是YZ平面中的X切片(也就是切割矩阵的一面)。我还得补充一下,我对XZ和YZ的维度不是特别确定,所以这些引用可能是反的。

我能做到这些,主要是参考了Sebastian Raschka的实用备忘单,链接在这里:http://sebastianraschka.com/Articles/2014_matrix_cheatsheet.html

非常感谢任何帮助!

1 个回答

2

ThreeD[70] 是用来获取三维数组中第70个元素的Z轴数据。

ThreeD[:, 70] 是用来获取三维数组中第70列的Y轴数据。

ThreeD[:, :, 70] 或者 ThreeD[..., 70] 是用来获取三维数组中第70层的X轴数据。

来自Jaime。谢谢你。

撰写回答