Получение суммы каждой диагонали 2D-матрицы в Python

#python #matrix #sum #diagonal

#питон #матрица #сумма #диагональ

Вопрос:

Представьте, что у меня есть матрица n x n. Я хочу получить сумму каждой диагонали и распечатать ее пользователю. Для n=3 я могу иметь

 matrix = [[1,2,3], [1,2,3], [1,2,3]]  

Я бы напечатал это:

 sum1 = 3 sum2 = 5 sum3 = 6 sum4 = 3 sum5 = 1  

Я хочу реализовать его на python. Спасибо за помощь!

Ответ №1:

Вы можете попробовать вот так :

 import numpy as np # Your Input matrix =[[1,2,3],[1,2,3],[1,2,3]] # Get Max : -gt; col max_col = len(matrix[0]) # Get Max : -gt; row max_row = len(matrix) # Prepare the list of all diag value fdiag = [[] for _ in range(max_row   max_col - 1)] # Get all posible diag value  for x in range(max_col):  for y in range(max_row):  fdiag[x y].append(matrix[x][y]) # Output for i in range (0,len(fdiag)):   print("sum" str(len(fdiag)-i) "=" str(sum(fdiag[i])))  

Выход:

 sum5=1 sum4=3 sum3=6 sum2=5 sum1=3