![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=1739293502-UjJB2cB4VB6iaDFtxuOHQAm6SrC6xzY8-0-4894bed76688ab30a360fd5f8d6f868b)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_1.jpg?sign=1739293502-fzk5bWJpFGledHh2NRFpNmaNnTcfd80v-0-908205656642f19400392d04795a2d69)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_2.jpg?sign=1739293502-0RW757ycr8gXikIORVxBGIK9inMVwyYS-0-7027ecb05c7bdd11dfe2c80929084484)
矩阵的拼合分为行拼合(即将行拼合在一起使得列数变多,使用np.hstack()方法)和列拼合(即将列拼合在一起使得行数变多,使用np.vstack()方法),示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_93_3.jpg?sign=1739293502-g7IFse4rtMKhZFvLknTFr0UkkZDQksZE-0-05c262ff209eb7d80fb08d8c6fbb52f5)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_94_1.jpg?sign=1739293502-Io5ZhuALELYOgNpj8ftXQCvfTM1b3Agv-0-d86fda76d994ae17694bebc0a8ec58de)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_94_2.jpg?sign=1739293502-R02oGcZRzpBgkRqvFalzaThI9NYN8wWT-0-91e837f8ab2e36b1b6c6bbabdfdc79a7)
矩阵有拼合方法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=1739293502-02Km4OxLMYoz5a6ErSUETB9eAJNcChdK-0-16d7de85c7ee3e222bb23f1420cd93c6)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_1.jpg?sign=1739293502-lNX2k3mFQZVl0wQwudTI8CYONva3jJcd-0-9e522df5e5c3a2f79bf3c161e35f46ff)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_2.jpg?sign=1739293502-KEdg9LMdd6gJ405SCJMwNsaDRCJpXAYd-0-fd1f76707ac804f34af74d7a69fb1b81)
或者按照序号划分,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_95_3.jpg?sign=1739293502-ofS1GbgFi90u865wfcn6BiUcNeCdeT9t-0-8772eba7c63b731a697d7aff632dc65e)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_1.jpg?sign=1739293502-we2hOVXcYTDsTKwGpeBukZe69lXhsplK-0-f55b20ecede8f65ba8da29685e2899c3)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_2.jpg?sign=1739293502-BRoSyQMrdDCZZyhbV1KKAQ3pprmrKOqS-0-8088d6d8855abf986dffdcdfc39c58bc)
再来看使用列划分方法np.hsplit()的示例,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_96_3.jpg?sign=1739293502-1VCNRGjReinkUdTC7ZA7W38Ly3CQAu0C-0-f37464f870fdd32fa0d58da4dfd4a030)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_97_1.jpg?sign=1739293502-zAuyMvb2wJbXJRnCiEGBD3lyieNatCQq-0-442af981e358fec51ecfb1b3998b6be3)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_97_2.jpg?sign=1739293502-uwKr7iKiTDWJE7iwL5ZAUbGXZuD96HPH-0-890964898d56fdd1cba9c91371a9569e)