Numpy 在以数组形式给出的索引处获取值

Numpy get values at indices given in array form

我想获取 my_arrayindices 处的值。

indices = np.array([[[0],
        [1],
        [0]]])

my_array = np.array([[[1.1587323 , 1.75406635],
        [1.05464125, 1.29215026],
        [0.9784655 , 1.16957462]]])

我应该得到以下输出:

output: array([[[1.1587323], [1.29215026], [0.9784655]]])

没有 for 循环或列表理解是否可能?

您可以使用 np.take_along_axis:

np.take_along_axis(my_array, indices, axis=-1)
array([[[1.1587323 ],
        [1.29215026],
        [0.9784655 ]]])