Python中的3D体积操作.. 在3D numpy数组中选择x/y/z行/列
我刚开始接触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。谢谢你。