Python Forum
Summing up rows and columns - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Summing up rows and columns (/thread-34603.html)



Summing up rows and columns - plumberpy - Aug-13-2021

result = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] qq = sum(result[3])
A. I can sum up all the rows using sum(). But how to sum the columns? Beside using the long method result[0][0]+result[1][0]+result[2][0]+result[3][0].

B. sum() will not work if one of the list elements is blank. Any way to resolve this?

Many thanks.

P/S

Found the answers. I should try harder n my search! Ha.

https://www.geeksforgeeks.org/python-column-wise-sum-of-nested-list/


RE: Summing up rows and columns - Yoriz - Aug-13-2021

You could transpose the rows into columns and then use sum
from itertools import zip_longest rows = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] print(rows) def transpose_rows(rows): return tuple(zip_longest(*rows, fillvalue=0)) columns = transpose_rows(rows) print(columns) print(sum(columns[3]))
Output:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] ((1, 5, 9, 13), (2, 6, 10, 14), (3, 7, 11, 15), (4, 8, 12, 16)) 40



RE: Summing up rows and columns - plumberpy - Aug-13-2021

(Aug-13-2021, 06:19 AM)Yoriz Wrote: You could transpose the rows into columns and then use sum
from itertools import zip_longest rows = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] print(rows) def transpose_rows(rows): return tuple(zip_longest(*rows, fillvalue=0)) columns = transpose_rows(rows) print(columns) print(sum(columns[3]))
Output:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] ((1, 5, 9, 13), (2, 6, 10, 14), (3, 7, 11, 15), (4, 8, 12, 16)) 40
Noted. Good idea!


RE: Summing up rows and columns - naughtyCat - Aug-18-2021

arr1 = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] arr2 = [list(col) for col in zip(*arr1)] print(arr2) print(sum(arr2[3]))
Output:
[[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]] 40



This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.