我希望模拟 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 循环要快得多(这是有道理的)。
最佳答案
除了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])
关于python - Numpy 一维数组 CumSquare 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12266682/