python如何取对角线元素

python如何取对角线元素

作者:Elara发布时间:2026-01-14阅读时长:0 分钟阅读次数:10

用户关注问题

Q
Python中如何提取矩阵的对角线元素?

我有一个二维列表或者NumPy数组,想要获取它的主对角线元素,应该用什么方法或函数?

A

使用NumPy的diag函数获取主对角线元素

如果你的数据是NumPy数组,可以使用numpy.diag函数来提取主对角线上的元素。示例代码:

import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
diag_elements = np.diag(arr)
print(diag_elements) # 输出[1 5 9]

Q
如何用Python循环方式取二维列表的对角线元素?

如果二维数据结构是普通的列表嵌套列表,没有使用NumPy,怎么用循环取到主对角线上的元素?

A

通过索引一致性提取对角线元素

由于对角线元素的行索引和列索引是相同的,可以通过遍历索引来提取:

matrix = [[1,2,3],[4,5,6],[7,8,9]]
diag_elements = [matrix[i][i] for i in range(len(matrix))]
print(diag_elements) # 输出[1, 5, 9]

Q
Python如何提取矩阵的副对角线元素?

我想要获取一个方阵的副对角线(反对角线)元素,该怎么实现?

A

利用索引计算获取副对角线元素

副对角线的元素索引满足行索引和列索引相加等于矩阵维度减一。代码示例:

matrix = [[1,2,3],[4,5,6],[7,8,9]]
n = len(matrix)
anti_diag = [matrix[i][n - 1 - i] for i in range(n)]
print(anti_diag) # 输出[3, 5, 7]