获取二维数组中的坐标?
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的坐标
最大元素。
我有这个 [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的坐标 最大元素。