获取指定索引处的数组元素

时间:2021-05-27 14:49:56

标签: python arrays numpy indexing

我有两个 Numpy 数组:

B:形状:(20, 20, 4, 3, 4)

S:形状:(20, 20, 4, 3)

这两个数组是对应的,所以对于 S 中的每个元素,在 B 中都存在一个有 4 个元素的数组。

我在 S 上使用 argmax 函数来获取最大值的索引(例如 1929)

现在我的问题是如何使用给定的索引获取 B 中的数组?

当我调用 B.item(index) 时,我只得到一个元素,而不是数组。

2 个答案:

答案 0 :(得分:0)

argmax 默认适用于扁平数组,因此您需要解开该索引以在另一个 NDarray 上使用它:

out = B[np.unravel_index(index, S.shape)]

展平的 B 数组的第 1929 个元素(即 B.item(index) 为您提供的)只是一个值,因为它已展平并且此时没有 ND 结构。

答案 1 :(得分:0)

试试:

B[np.where(B == np.amax(B))]