Sayısal bir dizi en yüksek seviyede tutmanın hızlı bir yoluna ihtiyacım var. Örneğin, benim dizi halinde idi:Sayısal dizi değerlerinin azami olarak çalıştırılması
x = numpy.array([11,12,13,20,19,18,17,18,23,21])
Ben isterdim:
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
Ama diziler yüzlerce:
Açıkçasınumpy.array([11,12,13,20,20,20,20,20,23,23])
biraz döngü ile bu yapabileceğini binlerce giriş ve bunu defalarca aramam lazım. Döngüyü kaldırmak için uyuşmuş bir numara olmalı gibi görünüyor, ama çalışacak bir şey bulamıyorum. Alternatif, bunu bir C uzantısı olarak yazmak olacaktır, ancak tekerleği yeniden icat ediyor gibi görünüyor. önerildiği gibi
Kümülatif maksimum - çalışan maksimum, bana bir pencere önerir. Ne yazık ki bunun için yararlı bir şey ortaya çıkmaz. –
Ben numpy yüklü değil, ancak max.accumulate işe yarayabilir. Dokümanlarda "biriktir" seçeneğini işaretleyin. –
@andrew max'ın numpy hesabında bir birikme özelliği yok. Bu olsa iyi bir yerleşik çözüm olurdu. – JoshAdel