在相等的时间间隔内求和

时间:2019-07-19 11:19:14

标签: python numpy

我有一个python numpy数组:

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

我想以n个元素的间隔对数组求和。因此,如果n例如3,则预期结果将是:

>>> [6,15,24,33]

如果n = 4,则为:

>>> [10,26,42]

有没有一种我根本找不到的简便方法?

2 个答案:

答案 0 :(得分:2)

带有reshape的简单sum可以做到:

n = 3
a.reshape(-1, n).sum(1)
# array([ 6, 15, 24, 33])

或针对n=4

n = 4
a.reshape(-1, n).sum(1)
# array([10, 26, 42])

答案 1 :(得分:0)

另一种选择是使用列表理解:

import numpy as np

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

n = 3

b = [np.sum(a[n*i:n*(i+1)]) for i in range(int(len(a)/n))]
print(b)
# Returns [6, 15, 24, 33]