python-3.x - 4d numpy数组的多维索引
问题描述
我有两个 3d 卷堆叠在一个 4d 数组中,尺寸为 2x5x5x5。
如果我想获取单个 3d 体积的一些/所有体素的值,我可以使用三个向量并获得以下内容:
x_new_mesh, y_new_mesh, z_new_mesh = np.meshgrid(np.arange(m),
np.arange(n),
np.arange(p))
x_new = x_new_mesh.flatten()
y_new = y_new_mesh.flatten()
z_new = z_new_mesh.flatten()
values = vol[x_new, y_new, z_new]
其中 m,n,p = 5 和 x, y, z 是 1x125 个向量。我得到一个 1x125 阵列,没有问题。
但是,我还没有设法对堆叠的卷做类似的事情。如何使用两组索引(每个卷的不同索引)来获得具有所需值的 2x125 数组?
解决方案
假设 vol 是您的 2x5x5x5 数组:
values = vol[:, x_new, y_new, z_new]