获取二维数组中的坐标?

Get coordinates in a 2D array?

我有这个 [116, 116] 数组,我想获取该数组中存在的 10 个最大值中的 coordinates/indices。

我怎样才能做到这一点?

谢谢!

参见this answer using np.argpartition

让我们创建一个测试数组 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])

现在将-3替换为-10,您将得到10的坐标 最大元素。