Python中三维变二维矩阵(用reshape)后各个维度的关系

一、

将一个5X20的二维矩阵变为一个5X10X2的三维数据。

import numpy as np
X_test = np.arange(100).reshape(5,20)

print(X_test)
X_test = X_test.reshape([X_test.shape[0], 10, 2])

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

得到的三维的X_test是5个二维的二维矩阵叠加而成的。

相当于,将原来5行的数据都分别reshape成了10*2的矩阵。

第一个二维矩阵为:X_test = [0, :, :]            第二个二维矩阵为:X_test = [1, :, :]                      

《Python中三维变二维矩阵(用reshape)后各个维度的关系》                                                《Python中三维变二维矩阵(用reshape)后各个维度的关系》

第三个二维矩阵为:X_test = [2, :, :]            第四个二维矩阵为:X_test = [3, :, :]

《Python中三维变二维矩阵(用reshape)后各个维度的关系》                                                 《Python中三维变二维矩阵(用reshape)后各个维度的关系》

第五个二维矩阵为:X_test = [2, :, :] 

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

X_test =  X_test.reshape([5,20])

再重新reshape回来后,与原始的X_test数据相同。

二、

X = np.arange(800).reshape(400,2)

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

x1 = X.reshape([2,20,20])

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

x2 = x1.reshape([2,400])

这里可以看做,将x1拉伸为一维向量后,再对这个一维向量进行reshape

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

x3 = x1.reshape([400,2])

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

x4 = x2.T   可以看到,转置与上面两者的区别,是不等同的

《Python中三维变二维矩阵(用reshape)后各个维度的关系》

 

    原文作者:bebr
    原文地址: https://blog.csdn.net/qq_34840129/article/details/86467817
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞