Трассировка каждой матрицы в массиве NumPy - PullRequest
1 голос
/ 03 мая 2019

Учитывая список нескольких матриц, я хочу вычислить след каждой матрицы.

np.asarray([[[1,2,3],
             [4,5,6],
             [7,8,9]],
           [[10,11,12],
            [13,14,15],
            [16,17,18]]])

Результат должен быть:

np.asarray([15, 42])

Ответы [ 3 ]

3 голосов
/ 03 мая 2019

Используйте axis1=1 и axis2=2 аргументы в np.trace.

np.trace(x, axis1=1, axis2=2)

3 голосов
/ 03 мая 2019

Вот способ использования расширенной индексации и sum вдоль второй оси:

a = np.asarray([[[1,2,3],
                 [4,5,6],
                 [7,8,9]],
               [[10,11,12],
                [13,14,15],
                [16,17,18]]])

a[:, range(a.shape[1]), range(a.shape[2])].sum(1)
# array([15, 42])
1 голос
/ 03 мая 2019

Используйте np.trace функцию с аргументами axis1=1 и axis2=2

mat = np.asarray([[[1,2,3],
             [4,5,6],
             [7,8,9]],
           [[10,11,12],
            [13,14,15],
            [16,17,18]]])

np.trace(mat, axis1=1, axis2=2)

вывод:

array([15, 42])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...