我有一个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]
有没有一种我根本找不到的简便方法?
答案 0 :(得分:2)
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]