首页 > 解决方案 > 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 数组?

标签: python-3.xmultidimensional-arrayindexingindicesnumpy-ndarray

解决方案


假设 vol 是您的 2x5x5x5 数组:

values = vol[:, x_new, y_new, z_new]

推荐阅读