【发布时间】:2019-05-31 11:27:02
【问题描述】:
我知道如何找到 n 维数组的最大元素的索引。
我们举个例子:
a=np.asarray([[1,7,-4],[9,-11,-17]])
然后(source):
from numpy import unravel_index
unravel_index(a.argmax(), a.shape)
返回:
(1, 0)
确实a[1,0] 是9,这是数组a 中的最高元素,所以我们很好。
我还能够弄清楚如何找到一维 numpy 数组 (using) 的第 i 个最大元素的索引:
a = np.array([1, 3, 2, 4, 5])
i=3 # we want the third largest element, for example
a.argsort()[-i]
这会返回1,这很好,因为a[1]=3 确实是a 的第三大元素。
我想将这两者结合起来。所以如果我有
a=np.asarray([[1,7,-4],[9,-11,-17]])
我想要一个输出告诉我数组a 的第i 个最大元素的索引,例如如果i=3,输出应该是[0,0],因为a[0,0]=1 是第i 个(第三个) a 的最大元素。
我该怎么做?
【问题讨论】:
-
stackoverflow.com/a/9483964/10708112 可能会有所帮助。
-
是的,问题是我并不总是想要最大值(即第一个最大的),而是第 i 个最大的,而我无法使用 a.argmax()。
标签: python arrays python-3.x numpy max