NumPy数组中连续值的切片


问题内容

假设我有一个a包含10个值的numpy数组。这只是一个示例情况,尽管我想对长度为100的数组重复相同的操作。

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

我想将前5个值相加,然后将后5个值相加,依此类推,然后将它们存储在新的空列表中b

因此b将包含b = [15,40]

我该怎么做呢?


问题答案:

尝试以下列表理解:

b = [sum(a[current: current+5]) for current in xrange(0, len(a), 5)]

它一次从列表中抽取5个切片,对它们求和并构造一个列表。也适用于长度不是5的倍数的列表。

xrange应该range在python3 +中)