2016-01-18 3 views
0

У меня есть numpy.ndarray (data), который имеет 5 элементов, и каждый элемент имеет 2042 строки и два столбца. Первая колонка содержит даты (с 15-минутными интервалами), а вторая содержит температуры. Я работаю над скриптом, который найдет максимальную температуру в течение 24 часов. У меня для этого есть рабочий сценарий.Поиск индексов numpy ndarray

x1=0 
y1=95 
maxTblue=[] 

for i in range(int(len(data[0])/96)+1): 
    #collect the max temp for 24-hr period 
    maxTblue.append(max(data[0][x1:y1,1])) 
    #add 96 to shift to the next 24-hr period 
    x1+=96 
    y1+=96 

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

maxdateBlue=[] 
locblue=[] 
x3=0 
y3=95 
for i in range(int(len(data[0])/96)+1): 
    #index for the max temp 
    locblue.append(np.where(data[0][x3:y3,1]==maxTblue[i])) 
    #date where the max temp occurs 
    maxdateBlue.append(data[0][locblue[i],0]) 
    x3+=96 
    y3+=96 

Как правильно использовать np.where, или как использовать другой индексы команды, чтобы выяснить, когда происходят мои максимальные температуры?

ответ

2

Чтобы найти индекс максимального значения в массиве numpy, используйте np.argmax()

Смежные вопросы