我花了很长时间仔细地寻找这个问题的答案,但没有找到任何完全符合我要求的问题。我有一个多维的numpy数组,包含数据(在我的例子中是三维的)和另一个数组(二维的),它包含沿着原始数组的最后一个维度想要的值的信息。例如,这里有一个简单的例子来说明这个问题。我有一个数据数组a,以及另一个包含a维数2的索引的数组b。我想要一个新的二维数组c,其中c[i, j] = a[i, j, b[i, j]].The唯一能想到的方法是使用一个循环,如下所示。然而,这似乎又笨重又缓慢。
In [3]: a = np.arange(8).reshape((2, 2, 2))
In [4]: a
Out[4]:
ar