通过迭代垂直求和数组元素

时间:2019-01-23 08:41:15

标签: python arrays

嗨,我有一个数组,我想垂直求和。只是想知道是否有任何功能可以轻松做到这一点?

a = [[ 1,  2,  3,  4,  5],
         [ 6,  7,  8,  9, 10],
         [11, 12, 13, 14, 15],
         [16, 17, 18, 19, 20],
         [21, 22, 23, 24, 25]]

我想打印1+6+11+16+21 , 2+7+12+17, 3+8+13, 4+9, 5的答案 如您所见,在每次迭代中,元素减少了一个。

2 个答案:

答案 0 :(得分:4)

这是使用zip和简单迭代的一种方法。

例如:

a = [[ 1,  2,  3,  4,  5],
         [ 6,  7,  8,  9, 10],
         [11, 12, 13, 14, 15],
         [16, 17, 18, 19, 20],
         [21, 22, 23, 24, 25]]

print([sum(v[:-i]) if i else sum(v) for i, v in enumerate(zip(*a))])

输出:

[55, 38, 24, 13, 5]

答案 1 :(得分:0)

转换为numpy数组,然后使用以下列表理解

bash

产生以下结果:

a = np.array(a)
[a[:5-i,i].sum() for i in range(5)]