【问题标题】:Propagate maximum value in numpy array在numpy数组中传播最大值
【发布时间】:2021-03-02 01:25:34
【问题描述】:

我认为这是一个相对简单的问题,因为我知道 numpy 中有一个简单的答案,但我再也找不到了。

我有一个 numpy 数组,比如[1, 2, 10, 5, 6, 12, 9, 9, 8]

我想从头到尾浏览一遍,只保留目前看到的最大值,例如答案是[1, 2, 10, 10, 10, 12, 12, 12, 12]

用一个循环很容易解决,但前段时间我了解了一个 numpy 函数,它可以快速完成工作,而且也很紧凑。我正在寻找这种方法。

谢谢!

【问题讨论】:

    标签: python arrays python-3.x numpy numpy-ndarray


    【解决方案1】:

    您可以使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 2021-07-31
      • 2016-05-18
      • 2012-04-13
      • 2018-08-10
      • 2014-04-03
      相关资源
      最近更新 更多