【问题标题】:Multi-dimensional indexing of 4d numpy array4d numpy数组的多维索引
【发布时间】:2019-01-04 11:54:29
【问题描述】:

我有两个 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.x multidimensional-array indexing indices numpy-ndarray


【解决方案1】:

假设 vol 是您的 2x5x5x5 数组:

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

【讨论】:

  • 感谢您的回复!但是,两个卷的 x_new、y_new 和 z_new 并不相同。如果我将它们设为 2x125,我会得到一个 2x2x125 数组,其中包含重复值。然后我可以删除其中的一半,但我受到 RAM 的限制(我使用的卷要大得多,所以将它们加倍是个问题)
  • 不要将它们设为 2x125。我的回答假设您定义它们的方式与您在示例中所做的相同(也就是说,它们中的每一个都是形状 (125,))。
猜你喜欢
  • 2016-04-08
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2018-01-22
  • 2013-06-05
相关资源
最近更新 更多