Я ищу, чтобы найти след матриц (используя Numpy) в функции, которую я определил в Python. Входные параметры tensor
и tensor_transpose
являются матрицами размера (N, 2,2) и извлекаются из файла VTK (N - довольно большое число и зависит от файла). Таким образом, A
и B
являются массивами (N, 2,2). Принимая трассировку каждого массива (сумма диагональных членов), должно быть возвращено одно значение для каждого массива. Таким образом, np.trace(A)**3)-(np.trace(B)**3
должно быть единственным числовым значением с массивом, имеющим форму (N, 1). Мой вывод, однако, не показывает этого, с возвращенной формой (2,)
.
Кто-нибудь может объяснить почему? Это проблема с функцией trace
и есть ли решение?
import numpy as np
A=np.array(0.5*(tensor-tensor_transpose))
B=np.array(0.5*(tensor+tensor_transpose))
C=np.array(0.5*((np.trace(A)**3)-(np.trace(B)**3)))
print(A.shape)
print(B.shape)
print(C.shape)
#Output
#(60600, 2, 2)
#(60600, 2, 2)
#(2,)