我有一个二维整数数组。我需要找到整个数组中的最大值及其索引。
目前我正在展平数组,然后使用
sort()
函数找到最高值。问题是我的数组有多个(12,000,000+ 个元素),所以排序后我不知道如何恢复索引。
maskingarray = Data.copy()
flatmask = maskingarray.flatten()
flatmask.sort()
此代码允许我访问具有最高值的元素,但我还需要 2D 数组中的位置。
有没有更好的方法可以让我保留原始数组的索引?最好只找到最大值而不需要压平。
感谢您的帮助
不要对其进行压平或排序,只需在数组中搜索最大元素的索引即可。
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}')