在一个二维数组中获取坐标?

3
我有一个[116, 116]数组,我想获取该数组中前10个最大值的坐标/索引。应该如何实现呢?
谢谢!
2个回答

3

让我们创建一个名为arr的测试数组:

array([[  1,   2, 141,   4,   5,   6],
       [  7, 143,   9,  10,  11,  12],
       [ 13,  14,  15, 145,  17,  18],
       [ 19,  20,  21,  22,  23,  24],
       [ 25,  26,  27,  28,  29,  30]])

要查找例如前3个最大值的坐标,请运行:

ind = np.divmod(np.flip(np.argsort(arr, axis=None)[-3:]), arr.shape[1])

结果是一个包含坐标的二元组:

(array([2, 1, 0], dtype=int64), array([3, 1, 2], dtype=int64))

为了测试它,您可以打印指定的元素:
arr[ind]

获取:

array([145, 143, 141])

现在用 -10 替换 -3,你就可以获得最大前 10 个元素的坐标。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接