Эффективный способ получить индекс минимального значения в длинном векторе, python

У меня есть длинный список значений долготы (len (Lon) = 420481) и еще один - значений широты. Я хочу найти соответствующую широту минимуму долготы.

Я пробовал:

SE_Lat = [Lat[x] for x,y in enumerate(Lon) if y == min(Lon)]

но на это уходит много времени.

Кто-нибудь знает более эффективный способ?

Возможно, у вас также есть предложения по этому поводу: Теперь я пытаюсь найти ближайшую соответствующую широту новой долготе, которой нет в исходном векторе долготы. Я пробовал это:

minDiff = [min(abs(x - lon_new) for x in lons)] # not very quick, but works
[(lat,lon) for lat,lon in izip(lats,lons) if abs(lon-lon_new)==minDiff]

Последняя строка выдает ошибку, потому что есть несколько совпадений. Я пока не знаю, как найти только одно значение, скажем первое. Любая помощь приветствуется!

9
задан Ronja 18 May 2011 в 15:16
поделиться