Мне нужен быстрый способ, чтобы сохранить рабочий максимум для массива numpy.Например, если бы мой массив был:
x = numpy.array([11,12,13,20,19,18,17,18,23,21])
Я бы хотел:
numpy.array([11,12,13,20,20,20,20,20,23,23])
Очевидно, я мог бы сделать это с помощью небольшого цикла:
def running_max(x):
result = [x[0]]
for val in x:
if val > result[-1]:
result.append(val)
else:
result.append(result[-1])
return result
Но мои массивы содержат сотни тысяч записей, и мне нужно вызывать это много раз.Кажется, что для удаления петли должен быть хитрый прием, но я не могу найти ничего, что будет работать.Альтернативой будет написать это как расширение C, но, похоже, я бы заново изобрел колесо.