如何在Python中提取3D矩阵的上三角形并放入向量中?

how to extract the upper triangular of a 3d matrix and put into a vector in python?

提问人:Merv 提问时间:11/15/2023 最后编辑:Tim RobertsMerv 更新时间:11/15/2023 访问量:26

问:

我是一个新的python学习者。我有一个 3d 矩阵,它是 454x454x1172。我想得到它的上三角形,并将其放入一个新的向量中。我该怎么做?

我试过这个。

upper_tsw = tsw[np.triu_indices(3, 1)]
print(upper_tsw)

返回的形状为 (3, 1172)。我认为这是不对的。

另一个我试过了;

shape = dfc_tsw.shape

mask = np.triu(np.ones(shape[1:]), k=1)

result =dfc_tsw[:, mask.astype(bool)]

print(result)
df = pd.DataFrame(result)
df

它的形状是(454,428803)。

Python 矩阵 索引

评论

1赞 Tim Roberts 11/15/2023
“上三角形”对 3D 矩阵意味着什么?
0赞 Merv 11/15/2023
矩阵的主对角线(1,1 ; 2,2 ; 3,3 ..)的上三角形部分。我的矩阵是 3D 数组。
0赞 SiP 11/15/2023
3D 矩阵中的对角线不定义体积或面积。您需要准确指定什么是“上角”
0赞 Tim Roberts 11/15/2023
右。术语“三角形”对于二维矩阵有明确的定义。对于 3D 矩阵,它没有明确定义。您想要每个 2D 平面的上三角形分别吗?
0赞 Merv 11/15/2023
对不起,我的误会。是的,我想为所有页面分别提取每个 2d 的上对角线。可能吗?提取每页的上三角形部分?

答: 暂无答案