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 выше.
Смотрите также
Примеры
>>> 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