numpy 嵌套列表的列求和[重复]

yhuiod9q  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(92)

此问题已在此处有答案

How to calculate the sum of all columns of a 2D numpy array (efficiently)(6个回答)
上个月关门了。
有没有一个更简单或更简单的方法来实现这一点?
我是在一个嵌套列表中对列求和。我有一个工作的例子,但我相信嵌套循环不是这样做的。必须有一些东西,也许在NumPy或其他东西中,已经做到了这一点?
所以它是每个嵌套列表中第一个元素的总和,每个嵌套列表中第二个元素的总和,等等。

list_a = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]

def sum_columns(nested_list):
    
    col_sums = []
    col_len = len(list_a[0])
    
    for col in range(col_len):
        
        col_sum = 0
        
        for row in list_a:
            col_sum += row[col]
            
        col_sums.append(col_sum)
        
    return col_sums
        
sum_columns(list_a)

>> [12, 15, 18]

我还尝试了列表解析,因为我认为这会更快,但它的逻辑似乎太复杂了,因为嵌套循环,我无法让它工作。

z4bn682m

z4bn682m1#

你可以使用zip和这个解包技巧:

[sum(i) for i in zip(*list_a)]

总是有一个论点,这是一个有点神秘,但它做的工作:

[12, 15, 18]

相关问题