Мне нужен быстрый способ сохранить максимальный размер массива 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, но похоже, что я изобретаю колесо.