Skip to main content
 首页 » 编程设计

python之如何在python中找到矩阵对角线上下元素的总和

2025年05月04日21dudu

我需要求主对角线上方和下方元素的总和。我不知道如何调整算法以仅对这些数字求和。这是我到目前为止的代码,A 是矩阵

A = [] 
N = int(raw_input("Input matrix size: ")) 
for i in range(0, N): 
    row = [] 
    for j in range(0, N): 
        row.append(int(raw_input("Input elements: "))) 
    A.append(row) 
sum = 0 
for i in range(0, N): 
    sum += A[i][i] 
print sum        
sum2 = 0 
for i in range(0, N): 
    for j in range(i+1, N): 
        sum2 += A[i][j] 
print sum2 

我猜我应该使用更多的 for 语句。 谢谢

请您参考如下方法:

您可以使用 np.triu、np.tril 和 np.trace 来计算这些总和(您的问题没有指定是否或不允许你利用 numpy):

import numpy as np 
 
np.random.seed(0) 
A = np.random.randint(0,10,size=(5,5)) 

给予:

[[5 0 3 3 7] 
 [9 3 5 2 4] 
 [7 6 8 8 1] 
 [6 7 7 8 1] 
 [5 9 8 9 4]] 

然后:

upper_sum = np.triu(A).sum()-np.trace(A) 
lower_sum = np.tril(A).sum()-np.trace(A) 

产量:

34 
73