РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
404 of 541 menu

Метод trace

Метод trace класса ndarray вычисляет сумму элементов главной диагонали массива. Для двумерных массивов это традиционный след матрицы. Метод также поддерживает работу с многомерными массивами и позволяет указать смещение диагонали с помощью параметра offset.

Синтаксис

arr.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None)

Параметры метода:

  • offset - смещение диагонали (по умолчанию 0). Положительное значение - диагональ выше главной, отрицательное - ниже главной.
  • axis1 и axis2 - оси, по которым берется диагональ (для многомерных массивов). По умолчанию это первая и вторая оси.
  • dtype - тип данных результата. Если не указан, тип определяется автоматически.
  • out - массив для записи результата (необязательный).

Пример

Вычислим след квадратной матрицы 3x3:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = arr.trace() print(res)

Результат выполнения кода:

15

Пример

Используем смещение для вычисления суммы элементов диагонали, расположенной выше главной:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = arr.trace(offset=1) print(res)

Результат выполнения кода:

15

В данном случае суммируются элементы arr[0][1], arr[1][2] - это 2 + 6 = 8. Метод вернул 8, а не 15. Ошибка в примере, исправляем:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = arr.trace(offset=1) print(res)

Результат выполнения кода:

8

Пример

Вычислим след диагонали, расположенной ниже главной:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = arr.trace(offset=-1) print(res)

Результат выполнения кода:

12

Суммируются элементы arr[1][0] и arr[2][1] - это 4 и 8, в сумме дают 12.

Пример

Применим метод trace к трехмерному массиву, указав оси для вычисления диагонали:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = arr.trace(axis1=0, axis2=1) print(res)

Результат выполнения кода:

[ 8 12]

Метод вычислил сумму элементов вдоль диагонали между осями 0 и 1 для каждого слоя по оси 2.

Пример

Укажем тип данных для результата с помощью параметра dtype:

import numpy as np arr = np.array([[1.2, 2.3], [3.4, 4.5]]) res = arr.trace(dtype=np.int32) print(res)

Результат выполнения кода:

5

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

  • метод diagonal,
    который возвращает элементы указанной диагонали
  • метод sum,
    который вычисляет сумму всех элементов массива
  • метод dot,
    который вычисляет скалярное произведение массивов
  • атрибут T,
    который возвращает транспонированную версию массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить