我有两个 Numpy 数组:
B:形状:(20, 20, 4, 3, 4)
S:形状:(20, 20, 4, 3)
这两个数组是对应的,所以对于 S 中的每个元素,在 B 中都存在一个有 4 个元素的数组。
我在 S 上使用 argmax 函数来获取最大值的索引(例如 1929)
现在我的问题是如何使用给定的索引获取 B 中的数组?
当我调用 B.item(index) 时,我只得到一个元素,而不是数组。
答案 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))]