【问题标题】:Numpy 1d Array CumSquare of the valuesNumpy 1d Array CumSquare 的值
【发布时间】:2012-09-04 15:26:39
【问题描述】:

我希望模拟numpy.cumsum() 的功能,但我需要捕获值的累积平方。

例如:我有一个数组是 [1,2,3,4]。

我可以使用numpy.cumsum(array) 来返回array([1,3,6,10])。我的目标是使用一些快速的 numpy 技巧来获得值的累积平方。

在纯 Python 中使用列表:

>>> y = [1,2,3,4]
>>> sqVal = 0
>>> for val in y:
...     sqVal += val*val
...     print sqVal
... 
1
5
14
30

我试过numpy.cumprod(),但那是累积乘积,而不是值的累积平方和。我使用 NumPy 的愿望纯粹是基于速度。使用 cumsum() 比使用 for 循环快得多(这是有道理的)。

【问题讨论】:

    标签: python optimization numpy multidimensional-array cumsum


    【解决方案1】:

    cumsum之外使用numpy的square函数:

    In [1]: import numpy as np
    
    In [2]: a = np.array([1,2,3,4])
    
    In [3]: np.square(a)
    Out[3]: array([ 1,  4,  9, 16])
    
    In [4]: np.cumsum(np.square(a))
    Out[4]: array([ 1,  5, 14, 30])
    

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 2021-02-13
      • 1970-01-01
      • 2022-01-18
      • 2018-05-31
      • 2021-04-16
      • 2021-05-05
      • 2017-09-21
      • 2021-05-27
      相关资源
      最近更新 更多