Функция trace
Функция trace возвращает сумму элементов по диагонали массива.
Для двумерных массивов это сумма элементов arr[i, i] для всех i.
Первый параметр - входной массив. Второй параметр offset
позволяет сдвинуть диагональ вверх или вниз относительно главной.
Параметр axis1 и axis2 определяют оси,
по которым берётся диагональ для многомерных массивов.
Синтаксис
np.trace(arr, offset=0, axis1=0, axis2=1, dtype=None, out=None)
Пример
Вычислим след квадратной матрицы:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = np.trace(arr)
print(res)
Результат выполнения кода:
15
Пример
Используем параметр offset для смещения диагонали:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = np.trace(arr, offset=1)
print(res)
Результат выполнения кода:
15
Пример
Смещение offset=-1 даёт сумму элементов под главной диагональю:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = np.trace(arr, offset=-1)
print(res)
Результат выполнения кода:
12
Пример
Функция также работает с прямоугольными матрицами, вычисляя след по минимальной размерности:
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
res = np.trace(arr)
print(res)
Результат выполнения кода:
7
Пример
Для трёхмерного массива можно указать оси, по которым берётся диагональ:
import numpy as np
arr = np.arange(24).reshape(2, 3, 4)
res = np.trace(arr, axis1=0, axis2=2)
print(res)
Результат выполнения кода:
[[12 14 16]
[18 20 22]]