我希望扭转 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, 3, 6, 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, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int32)
非常感谢。
答案 0 :(得分:1)
这应该能帮到你!
с = b.copy()
с[1:] = np.diff(b)
с
# array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int32)