如何在使用 sort() 展平并按降序排序后保留数组元素的索引

问题描述 投票:0回答:1

我有一个二维整数数组。我需要找到整个数组中的最大值及其索引。

目前我正在展平数组,然后使用

sort()
函数找到最高值。问题是我的数组有多个(12,000,000+ 个元素),所以排序后我不知道如何恢复索引。

maskingarray = Data.copy()
flatmask = maskingarray.flatten()
flatmask.sort()

此代码允许我访问具有最高值的元素,但我还需要 2D 数组中的位置。

有没有更好的方法可以让我保留原始数组的索引?最好只找到最大值而不需要压平。

感谢您的帮助

python arrays sorting flatten
1个回答
0
投票

不要对其进行压平或排序,只需在数组中搜索最大元素的索引即可。

largest = float('-inf')
largest_index = None

for x, row in enumerate(Data):
    for y, val in enumerate(row):
        if val > largest:
            largest = val
            largest_index = (x, y)

print(f'Maximum {largest} found at {largest_index}')
© www.soinside.com 2019 - 2024. All rights reserved.