python – 运行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扩展名,但似乎我将会重塑轮子。

numpy.maximum.accumulate为我工作。

>>> import numpy
>>> numpy.maximum.accumulate(numpy.array([11,12,13,20,19,18,17,18,23,21]))
array([11, 12, 13, 20, 20, 20, 20, 20, 23, 23])
http://stackoverflow.com/questions/7251421/running-maximum-of-numpy-array-values

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – 运行numpy数组值的最大值