我认为这是一个相对容易的问题,因为我知道在numpy中有一个简单的答案,但我再也找不到了。
我有一个numpy数组,[1, 2, 10, 5, 6, 12, 9, 9, 8]说
我想从头到尾检查它,并且只保留到目前为止所看到的最大值,例如,答案是[1, 2, 10, 10, 10, 12, 12, 12, 12]。
用一个循环来解决这个问题很容易,但在一些时候,我了解到一个快速完成任务的numpy函数,它也很紧凑。我在找这个方法。
谢谢!
发布于 2020-11-18 18:09:44
您可以使用numpy.ufunc.accumulate对所有元素累积应用函数maximum的结果:
a = np.array([1, 2, 10, 5, 6, 12, 9, 9, 8])
np.maximum.accumulate(a)
# array([ 1, 2, 10, 10, 10, 12, 12, 12, 12], dtype=int32)https://stackoverflow.com/questions/64898809
复制相似问题