如何根据指数给定沿给定轴的元素?

Rom*_*man 5 python arrays numpy

我有一个3D数组,我需要在最后一个轴上"挤"它,这样我得到一个2D数组.我需要以下面的方式做到这一点.对于前两个维度的索引的每个值,我知道应从中获取值的第三维的索引值.

例如,我知道,如果i1 == 2i2 == 7i3 == 11.这意味着out[2,7] = inp[2,7,11].从前两个维度到第三个维度的映射在另一个2D阵列中给出.换句话说,我有一个数组,其中2,7我的位置11作为一个值.

所以,我的问题是如何组合这两个数组(3D和2D)来获得输出数组(2D).

hav*_*wal -1

我相信这应该可以做到:

for i in range(n):
    for j in range(m):
        k = index_mapper[i][j]
        value = input_3d[i][j][k]
        out_2d[i][j] = value 
Run Code Online (Sandbox Code Playgroud)