给定某些维度的索引,如何在numpy数组中选择值?

给定某些维度的索引,如何在numpy数组中选择值?,numpy,indexing,Numpy,Indexing,我想得到给定索引的值,例如 matrix = np.array([[0.1,0.2,0.7],[0.3,0.3,0.4],[0.2,0.2,0.6]]) indexes = np.array([0, 2, 1]) 我期望得到的是 `array([0.1,0.4,0.2])` 一个简单的sulotion是 matrix[np.arange(3), indexes] 然而,当输入是张量时,例如,我想选择CNN特征图中的最大值,其大小为[b,f,h,w],索引为: h_idx, w_idx

我想得到给定索引的值,例如

matrix = np.array([[0.1,0.2,0.7],[0.3,0.3,0.4],[0.2,0.2,0.6]])
indexes = np.array([0, 2, 1])
我期望得到的是

`array([0.1,0.4,0.2])`
一个简单的sulotion是

matrix[np.arange(3), indexes]  
然而,当输入是张量时,例如,我想选择CNN特征图中的最大值,其大小为[b,f,h,w],索引为:

h_idx, w_idx = np.unravel_index(np.argmax(matrix.reshape(b, m, -1), -1), [h, w])
我想选择另一个同样大小的张量的值[b,f,h,w],用上面的索引。我能做些什么来解决这个问题?它似乎使用了
np。沿\u轴取\u