numpy.trace#

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

返回数组对角线元素的和.

如果 a 是 2-D 的,则返回沿其具有给定偏移量的对角线的总和,即所有 i 的元素 a[i,i+offset] 的总和.

如果 a 具有两个以上的维度,则由 axis1 和 axis2 指定的轴用于确定返回其迹的 2-D 子数组. 结果数组的形状与删除 axis1axis2a 的形状相同.

参数:
aarray_like

输入数组,从中获取对角线.

offset整数,可选

对角线与主对角线的偏移量. 可以是正数也可以是负数. 默认为 0.

axis1, axis2整数,可选

用作 2-D 子数组的第一轴和第二轴的轴,将从中提取对角线. 默认为 a 的前两个轴.

dtypedtype, optional

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

outndarray, 可选

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

返回:
sum_along_diagonalsndarray

如果 a 是 2-D 的,则返回沿对角线的总和. 如果 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)