Numpy:列表中的累积差异

log*_*ess 0 python loops numpy

我陷入了迭代问题。我有一个数字列表,例如:list = [100, 70, 25, 10, 5]。我想迭代列表并生成一个新数组,以便每个“结果”成为从中减去下一个“结果”的新数字:

100-70 = 30

30(结果)- 25 = 5

5(结果)- 10 = -5

-5(结果)- 5 = -10

(我想你应该已经明白了)

新数组 = [30, 5, -5, -10]

我无法使用 Numpy 找到解决方案。
任何帮助表示赞赏!谢谢你!

Bil*_*ill 5

您可以将减法 ufunc 与numpy.ufunc.accumulate一起使用。

numbers = [100, 70, 25, 10, 5]
result = np.subtract.accumulate(numbers)[1:]
print(result)
Run Code Online (Sandbox Code Playgroud)

输出:

numbers = [100, 70, 25, 10, 5]
result = np.subtract.accumulate(numbers)[1:]
print(result)
Run Code Online (Sandbox Code Playgroud)