Python Numpy 累积/差值

问题描述

我希望扭转 numpy 的 cumsum 函数的影响,即累积/运行总数。查看下面的代码,我分配了数字 1 到 10,以及这些数字的运行总数。我需要颠倒这个过程,即从 b 计算 a。我可以对此进行编码(参见 c),但如果可能的话,我更愿意使用预先优化的内置函数。有没有符合要求的可用的东西?

import numpy as np

a = np.arange(1,10)
a
# array([1,2,3,4,5,6,7,8,9])

b = np.cumsum(a)
b
# array([ 1,10,15,21,28,36,45],dtype=int32)

c=np.array([b[0]])
c=np.append(c,b[1:9]-b[0:8])
c
# array([1,9],dtype=int32)

非常感谢。

解决方法

这应该能帮到你!

с = b.copy()
с[1:] = np.diff(b)
с
# array([1,2,3,4,5,6,7,8,9],dtype=int32)