python - 矩阵中对角线元素的总和

标签 python matrix

我试图找出矩阵中对角线元素的总和。这里,n 是方阵的大小,a 是矩阵。有人可以向我解释一下这里发生了什么。

n = 3
a = [[11,2,4],[4,5,6],[10,8,-12]]
sum_first_diagonal = sum(a[i][i] for i in range(n))
sum_second_diagonal = sum(a[n-i-1][n-i-1] for i in range(n))
print(str(sum_first_diagonal)+" "+str(sum_first_diagonal))

最佳答案

使用对任何矩阵计算都非常强大的 numpy 库。对于您的具体情况:

import numpy as np
a = [[11,2,4],[4,5,6],[10,8,-12]]
b = np.asarray(a)
print('Diagonal (sum): ', np.trace(b))
print('Diagonal (elements): ', np.diagonal(b))

您可以使用 pip 或您在许多网站上找到的其他方式轻松安装 numpy。

如果您想要所有对角线,而不仅仅是主对角线,请检查 this这也使用 numpy。

编辑

mhawke,如果您想计算对角线(次对角线),如 wikipedia 中所述,你可以在numpy中翻转矩阵

import numpy as np
a = [[11,2,4],[4,5,6],[10,8,-12]]
b = np.asarray(a)
b = np.fliplr(b)
print('Antidiagonal (sum): ', np.trace(b))
print('Antidiagonal (elements): ', np.diagonal(b))

关于python - 矩阵中对角线元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35252993/

相关文章:

C++ 函数不返回二维数组

arrays - MATLAB 中向量数组的向量范数

arrays - 根据维度名称聚合数组

python - 对命令运行 popen 时出现异常

python - 字典中多个列表列表的子元素的交集

python - 在Factory Boy中,如何连接Faker创建的字符串?

python - 将数据框中带有时间戳的多行事件转换为带有开始和结束日期时间的单行

python - 在 DJANGO 中加载管理员和我的页面的 CSS 时出现问题

r - 使用 matrixStats::rowMedians 查找每一行的中位数

c++ - OpenCV从矩阵获取条件库最大元素位置