尽管数组是多维的,但许多数组方法都返回单个索引。例如:
a = rand(2,3)
z = a.argmax()
对于二维,很容易找到最大元素的矩阵索引:
a[z/3, z%3]
但是对于更多尺寸,它可能会变得烦人。在一个(折叠)维度中给定索引时,Numpy / Scipy是否有一种简单的方法可以在多个维度中返回索引?感谢。
答案 0 :(得分:6)
知道了!
a = X.argmax()
(i,j) = unravel_index(a, X.shape)
答案 1 :(得分:1)
我不知道内置函数可以做你想要的,但是在哪里 我找到了,我意识到我真正想做的就是:
给出2个具有相同形状的数组a,b,找到b中的元素 相同的位置(相同的[i,j,k ...]位置)作为
的最大元素为此,快速的numpy-ish解决方案是:
j = a.flatten().argmax()
corresponding_b_element = b.flatten()[j]
文斯马尔凯蒂