猿问

Python 中的跟踪操作未形成正确的数组形状

我希望在 Python 中定义的函数中找到矩阵的踪迹(使用 Numpy)。输入参数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,)


波斯汪
浏览 48回答 1
1回答

有只小跳蛙

也许您需要指定轴:np.trace(A, axis1=1, axis2=2)
随时随地看视频慕课网APP

相关分类

Python
我要回答