![Python数据分析从小白到专家](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/38209745/b_38209745.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.2.4 拼合、划分一个矩阵
本节以元素为1到16的一个二维矩阵,以及上一节的三维矩阵为例进行介绍。之前已经学过如何用reshape()方法改变矩阵的形状,现在将学习更多方法来改变它的形状以得到某个需要的结果。例如,返回转置矩阵和返回所有元素,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_92_2.jpg?sign=1739521466-NsgV9mYJE7Iuf4sTI14YBbxDQitgfEcX-0-b2e77f37348a4dbf853a458946f661c1)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_1.jpg?sign=1739521466-NWTmRdkUEujkGecVXczewqVo7vZsLWnl-0-fbf97dff1cea1717f3c15b643dcde335)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_2.jpg?sign=1739521466-xDey1nzYx5gbzz7iH5m4JPXR6v35KOfK-0-6afff830f114927850850990db59b3f0)
矩阵的拼合分为行拼合(即将行拼合在一起使得列数变多,使用np.hstack()方法)和列拼合(即将列拼合在一起使得行数变多,使用np.vstack()方法),示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_3.jpg?sign=1739521466-uFrC759FvztvauN3SX984pkUC4B5VTd4-0-f46c7faaf1a43b57eccefec8d785c770)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_94_1.jpg?sign=1739521466-zVryFeIzlmJ4yW44Mr2czbwl51kUL0rP-0-673ce9e2962e0de97730c442f4359e5f)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_94_2.jpg?sign=1739521466-F5nFOJwMnL1CVrCZNnKqWaHMzcQTiu1M-0-e165699a2c6caa355bf6ed6120a583d5)
矩阵有拼合方法np.vstack()和np.hstack(),也有划分方法np.vsplit()和np.hsplit()。先来看使用行划分方法np.vsplit()的示例,该矩阵必须被均等划分,否则会报“array split does not result in an equal division”错误,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_94_3.jpg?sign=1739521466-NQJMj9SNIHg13vZPh2Hba3VDB5ZTPZil-0-e98e7d473d049c3cd74c33252e51a00c)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_1.jpg?sign=1739521466-jkg2jAVvUXsKoudU7oudsiH2KMiRmLey-0-d49845ab563d05b9bc7efb2ca76e9e56)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_2.jpg?sign=1739521466-Cc8Wy4gEYzW3A4zhmOe5QTcZZevdG8wW-0-46953f54f8973f3449330847c5931301)
或者按照序号划分,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_3.jpg?sign=1739521466-BTDX9PEOq0XBP5ZepZfZSKPvcLq9wBCT-0-0b5d24579b6b17f533f4729af0813e37)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_1.jpg?sign=1739521466-wTGpeWS84Af8kuU2dwKkMnLCdJhrpldL-0-28160dd36868a920dfd1b01053a73d2c)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_2.jpg?sign=1739521466-OEwAu3MD8xtRbmlNkUcInd5JKpInstwQ-0-b1a3cf5acb054dd032000c81d738e2c4)
再来看使用列划分方法np.hsplit()的示例,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_3.jpg?sign=1739521466-3AqIFSwhxJjeZB3JSNkB3tHoEYjEWO7Y-0-7de0f8cd26c0676cd2acfc090ffaeb7e)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_97_1.jpg?sign=1739521466-anWhdKyz2lX1XYgvplNb1XomDOy5WEko-0-962d174eb60783c31d99b034eedb2bd0)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_97_2.jpg?sign=1739521466-mEaVIUcHXfqX2UbWSb5HKSvkcxzQ2b6b-0-40b4441faa9fcaac0e376207e6d65db1)