如何在 numpy 中将 [a,b,c] 转换为 [a+b+c, b+c, c]?

How to convert [a,b,c] to [a+b+c, b+c, c] in numpy?

如果我有一个数组 [a,b,c],我怎样才能以最有效的方式将它转换为 [a+b+c, b+c, c]?

(a, b, c) 是浮点数。

谢谢!

您可以使用 np.cumsum:

import numpy as np

a = np.array([1, 2, 3])
print(np.cumsum(a[::-1])[::-1])
# Outputs [6 5 3]

对反转数组使用numpy.cumsum(),然后再次反转。 cumsum([a,b,c]) returns [a,a+b,a+b+c].

import numpy as np

x = [3,7,14]

y = np.cumsum(x[::-1])[::-1]

print(y)