微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行numpy数组值的最大值

如何解决运行numpy数组值的最大值

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])

解决方法

我需要一种快速的方法来保持运行最大的numpy数组。例如,如果我的数组是:

x = numpy.array([11,12,13,20,19,18,17,23,21])

我想要:

numpy.array([11,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扩展,但似乎我会重新发明轮子。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。