1.将数组切分为多个子数组
np.split(ary,indices_or_sections,axis)常用参数:ary--要分割的数组;indices_or_sections--取值为整数或者一维数组,即切割的份数或者根据索引号进行切割;axis--切割的轴线,默认为0;
备注:上述函数参数indices_or_sections取值如果为整数,则均等分割数组,如果无法均等切割,则会报错。
![c093b24af2b8e06bebe9c073bb710537.png](https://img-blog.csdnimg.cn/img_convert/c093b24af2b8e06bebe9c073bb710537.png)
# 根据第二个维度进行切割,对于二维数组可以看成纵向切割np.hsplit(ary,indices_or_sections)常用参数:ary--要分割的数组;indices_or_sections--取值为整数或者一维数组,即切割的份数或者根据索引号进行切割;
备注:split与array_split用法基本相同,主要区别在于array_split函数中参数indices_or_sections取整数时,不要求实现均等分割,可以实现非均等分割。
![37bc049566f479323b0562b799046753.png](https://img-blog.csdnimg.cn/img_convert/37bc049566f479323b0562b799046753.png)
# 根据第一个维度进行切割np.vsplit(ary,indices_or_sections)常用参数:ary--要分割的数组;indices_or_sections--取值为整数或者一维数组,即切割的份数或者根据索引号进行切割;
备注:相当于split函数中设置axis=0
![17d4a8e90b07a935c5f4ec9788ef26b0.png](https://img-blog.csdnimg.cn/img_convert/17d4a8e90b07a935c5f4ec9788ef26b0.png)
# 根据第二个维度进行切割,对于二维数组可以看成纵向切割np.hsplit(ary,indices_or_sections)常用参数:ary--要分割的数组;indices_or_sections--取值为整数或者一维数组,即切割的份数或者根据索引号进行切割;
备注:相当于split函数中设置axis=1
![9e9cfe0fc8ca94ad885ff4343b550d0c.png](https://img-blog.csdnimg.cn/img_convert/9e9cfe0fc8ca94ad885ff4343b550d0c.png)
# 根据第三个维度进行切割np.dsplit(ary,indices_or_sections)常用参数:ary--要分割的数组;indices_or_sections--取值为整数或者一维数组,即切割的份数或者根据索引号进行切割;
备注:相当于split函数中设置axis=2
![d3c0e546976f85de46e4111703220a8f.png](https://img-blog.csdnimg.cn/img_convert/d3c0e546976f85de46e4111703220a8f.png)
上述各函数在进行数组切割时,并不会改变数组的维度,即切割之前和切割之后的数组维度是一致的。
2.数组的拼接
np.stack(arrays,axis)参数:arrays--需要拼接的数组序列;axis--按某个维度进行拼接,默认为0,设置为-1代表最后一个维度;
备注:需要拼接的各数组必须具有相同的形状。
![f37fff5d68ed8d4e8a82843342c41ff8.png](https://img-blog.csdnimg.cn/img_convert/f37fff5d68ed8d4e8a82843342c41ff8.png)
可以看出,stack函数在进行数组拼接后维度增加了一个。
np.concatenate(arrays,axis)参数:arrays--数组序列;axis--按照某个维度进行拼接,默认为0,即根据第一个维度,设置为None,则将数组转换一维数组进行拼接;
![66fd02f1e08a8af5d9f881c09f733363.png](https://img-blog.csdnimg.cn/img_convert/66fd02f1e08a8af5d9f881c09f733363.png)
# 等价于concatenate函数沿第一轴进行拼接np.vstack(tup)参数:tup--需要拼接的数组序列;
备注:拼接后的数组至少为二维。
![88318263b42290095179991af8e5c613.png](https://img-blog.csdnimg.cn/img_convert/88318263b42290095179991af8e5c613.png)
# 等价于concatenate函数沿第二轴进行拼接np.hstack(tup)参数:tup--需要拼接的数组序列;
![033fbdd7f9740e0d197b79a43a80882b.png](https://img-blog.csdnimg.cn/img_convert/033fbdd7f9740e0d197b79a43a80882b.png)
# 等价于concatenate函数沿第三轴进行拼接np.dstack(tup)参数:tup--需要拼接的数组序列;
![dab21999420fdf9a2dd3316c43bf7f58.png](https://img-blog.csdnimg.cn/img_convert/dab21999420fdf9a2dd3316c43bf7f58.png)
# 将一维数组按列拼接为二维数组np.column_stack(tup)参数:tup--需要拼接的数组;
![9eecc072743d7c2244cd05b2c5ba9112.png](https://img-blog.csdnimg.cn/img_convert/9eecc072743d7c2244cd05b2c5ba9112.png)
# 将一维数组按行拼接为二维数组np.row_stack(tup)参数:tup--需要拼接的数组;
![f551392397c9fc618dd735d5d2c57ab7.png](https://img-blog.csdnimg.cn/img_convert/f551392397c9fc618dd735d5d2c57ab7.png)
# 按列拼接np.c_# 按行拼接np.r_
![b178bebbba43247eb12f15176f1a0a42.png](https://img-blog.csdnimg.cn/img_convert/b178bebbba43247eb12f15176f1a0a42.png)
# 以块的形式拼接数组np.block(arrays)参数:arrays--需要拼接的数组序列;
备注:对于深度为1的列表,该函数等价于hstack;对于深度为2的列表,该函数等价于vstack。
![646fc0bbe75cce7694cda67a99f62637.png](https://img-blog.csdnimg.cn/img_convert/646fc0bbe75cce7694cda67a99f62637.png)
参考资料
https://numpy.org/doc/1.19/user/quickstart.html