Numpy trace() 函数
Numpy trace() 函数用于计算二维数组或矩阵对角线元素的和,即对所有 i 元素求和 a[i, i+offset],其中偏移量决定选择哪条对角线(主对角线上方的对角线为正,主对角线下方的对角线为负)。
如果输入数组不是二维的,或者给出了不支持的偏移量,则此函数会引发 ValueError。
语法
以下是 Numpy trace() 函数的语法 -
numpy.trace(a, offset=0, axis1=0, axis2=1)
参数
以下是 Numpy trace() 函数的参数 -
- a:输入的二维数组或矩阵。
- offset(可选):对角线偏移量。正值表示将对角线移至主对角线上方,负值表示将对角线移至主对角线下方。默认值为 0,表示主对角线。
- axis1, axis2(可选):定义数组中二维平面的轴,对角线将从该平面求和。默认情况下,axis1=0,axis2=1。
返回类型
此函数返回矩阵对角线元素的和。
示例
以下是使用 Numpy trace() 函数计算矩阵主对角线元素和的基本示例 -
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) result = np.trace(matrix) print("主对角线元素和:", result)
输出
以下是上述代码的输出 -
主对角线之和:15
示例:使用偏移提取对角线
trace() 函数中的 offset 参数允许我们计算主对角线上方或下方对角线元素之和。正值表示对角线上移(位于主对角线上方),负值表示对角线上移(位于主对角线下方)。这里,我们提取并求和了主对角线上方的元素 -
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print("矩阵: ",matrix) result = np.trace(matrix, offset=1) print("主对角线上方对角线的和:", result)
输出
以下是上述代码的输出:
矩阵: [[1 2 3] [4 5 6] [7 8 9]] 主对角线上方对角线的和:8
示例:不同轴的对角线和
我们可以指定不同的轴来计算非方阵中对角线元素的和。在以下示例中,我们使用轴 0 和 1 计算对角线元素之和 -
import numpy as np matrix = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) print("原始矩阵: ", matrix) print("矩阵形状:", matrix.shape) result = np.trace(matrix, axis1=0, axis2=1) print("轴 (0, 1) 的对角线元素之和:", result)
输出
以下是上述代码的输出:
原始矩阵: [[1 2] [3 4] [5 6] [7 8]] 矩阵形状:(4, 2) 轴 (0, 1) 的对角线元素之和:6