numpy.trace#

numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)[source]#

返回数组对角线上的总和。

如果 a 是二维的,则返回其对角线上的总和,该对角线具有给定的偏移量,即所有 i 的元素 a[i,i+offset] 的总和。

如果 a 具有超过两个维度,则由 axis1 和 axis2 指定的轴用于确定返回其迹的二维子数组。结果数组的形状与 a 的形状相同,但删除了 axis1axis2

参数:
aarray_like

输入数组,从中提取对角线。

offsetint, 可选

对角线相对于主对角线的偏移量。可以是正数或负数。默认为 0。

axis1, axis2int, 可选

用作二维子数组的第一轴和第二轴的轴,从中提取对角线。默认值是 a 的前两个轴。

dtypedtype, 可选

确定返回数组和累加器的数据类型,元素在其中求和。如果 dtype 的值为 None,并且 a 的整数类型精度小于默认整数精度,则使用默认整数精度。否则,精度与 a 的精度相同。

outndarray, 可选

将输出放置其中的数组。其类型将被保留,并且它必须具有正确的形状才能容纳输出。

返回值:
sum_along_diagonalsndarray

如果 a 是二维的,则返回沿对角线的总和。如果 a 具有更高维度,则返回沿对角线的总和数组。

另请参见

diag, diagonal, diagflat

示例

>>> import numpy as np
>>> np.trace(np.eye(3))
3.0
>>> a = np.arange(8).reshape((2,2,2))
>>> np.trace(a)
array([6, 8])
>>> a = np.arange(24).reshape((2,2,2,3))
>>> np.trace(a).shape
(2, 3)