numpy.linalg.trace#

linalg.trace(x, /, *, смещение=0, dtype=None)[источник]#

Возвращает сумму по указанным диагоналям матрицы (или стека матриц) x.

Эта функция совместима с Array API, в отличие от numpy.trace.

Параметры:
x(…,M,N) array_like

Входной массив с формой (…, M, N), чьи два внутренних измерения образуют матрицы MxN.

смещениеint, необязательный

Смещение, указывающее на побочную диагональ относительно главной диагонали, где:

* offset = 0: the main diagonal.
* offset > 0: off-diagonal above the main diagonal.
* offset < 0: off-diagonal below the main diagonal.
dtypedtype, опционально

Тип данных возвращаемого массива.

Возвращает:
выходndarray

Массив, содержащий следы, чья форма определяется удалением последних двух измерений и сохранением следов в последнем измерении массива. Например, если x имеет ранг k и форму: (I, J, K, …, L, M, N), то выходной массив имеет ранг k-2 и форму: (I, J, K, …, L), где:

out[i, j, k, ..., l] = trace(a[i, j, k, ..., l, :, :])

Возвращаемый массив должен иметь тип данных, как описано параметром dtype выше.

Смотрите также

numpy.trace

Примеры

>>> np.linalg.trace(np.eye(3))
3.0
>>> a = np.arange(8).reshape((2, 2, 2))
>>> np.linalg.trace(a)
array([3, 11])

След вычисляется с последними двумя осями как 2-мерные подмассивы. Это поведение отличается от numpy.trace которая по умолчанию использует первые две оси.

>>> a = np.arange(24).reshape((3, 2, 2, 2))
>>> np.linalg.trace(a).shape
(3, 2)

Следы, смежные с главной диагональю, можно получить с помощью смещение аргумент:

>>> a = np.arange(9).reshape((3, 3)); a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> np.linalg.trace(a, offset=1)  # First superdiagonal
6
>>> np.linalg.trace(a, offset=2)  # Second superdiagonal
2
>>> np.linalg.trace(a, offset=-1)  # First subdiagonal
10
>>> np.linalg.trace(a, offset=-2)  # Second subdiagonal
6