I can sum the items in column zero fine. But where do I change the code to sum column 2, or 3, or 4 in the matrix? I'm easily stumped.
def main():
matrix = []
for i in range(2):
s = input("Enter a 4-by-4 matrix row " + str(i) + ": ")
items = s.split() # Extracts items from the string
list = [ eval(x) for x in items ] # Convert items to numbers
matrix.append(list)
print("Sum of the elements in column 0 is", sumColumn(matrix))
def sumColumn(m):
for column in range(len(m[0])):
total = 0
for row in range(len(m)):
total += m[row][column]
return total
main()
where M is the matrix
This can be made easier if you represent the matrix as a flat array:
numpy could do this for you quite easily:
Of course, if you wanted do it by hand, here's how I would fix your code:
Still, there is a simpler way, using zip:
To get the sum of all columns in the matrix you can use the below python numpy code:
One-liner:
also
for any rectangular, non-empty matrix (list of lists)
M
. e.g.Here is your code changed to return the sum of whatever column you specify: