python - 如何找到 n 维 numpy 数组的第 i 个最大元素的索引?

标签 python arrays python-3.x numpy max

我知道如何找到 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]=1a 的第 i 个(第三)大元素。

我该怎么做?

最佳答案

好吧,要获得一些最大或任何一个的索引,您可以使用 where:

通过 webDev 添加上述答案:

import numpy as np
i=2

a=np.asarray([[1,7,-4],[9,-11,-17]])

flat=a.flatten()
flat.sort()
tryvalue= flat[-i]

i, j = np.where(a == tryvalue)
print(i,j)

这会给你:

[0] [1]

我的意思是您可以自行更改您希望这些索引的样子(元组或其他)。

关于python - 如何找到 n 维 numpy 数组的第 i 个最大元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54046591/

相关文章:

python - 矩阵中的数字

python - 具有不同形状元素的 numpy.array

php - 如何使用php在csv文件中写入2个数组

javascript - 在提交之前调用表单内的 ajax 显示 `Uncaught ReferenceError`

python - for 循环以在 python 中列出理解或映射

python - 将 2D 图像转换为 3D

python - GRU加载模型错误,ValueError : GRU(reset_after=False) is not compatible with GRU(reset_after=True)

objective-c - 使用 NSIndexPath 将 2D NSArray 映射到 1D

python - 如何保持 Pandas 的内存效率?

python - 按元组的指定元素对带有元组键的字典进行排序