1

我希望模拟 的功能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 循环快得多(这是有道理的)。

4

1 回答 1

3

square除了使用 numpy 的功能cumsum

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])
于 2012-09-04T15:33:42.007 回答