python - Numpy 一维数组 CumSquare 值

标签 python optimization numpy multidimensional-array cumsum

我希望模拟 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/

相关文章:

c - 为什么那些函数调用没有优化?

python - 使用numpy根据固定映射将巨大的2字节字符串数组转换为相应的1字节字符串

python:通过从列表中排除特定值来创建随机值

python - gCentroid (rgeos) R 与实际质心(Python 中)

python - Pandas 识别组中第一行的列值

python - 与列表理解相比,生成器表达式做的工作更少吗?

Python,回顾并加速A*算法

python - 优化 "difference function"的计算

python - 使用Python删除Excel行

python - Lambda 语法无效