2.4 数组的变形与转换
首先,这个一个3x4的二维数组
2.4.1 reshape()函数
变形前后数组的size要保持一致,否则会报错
2.4.2 resize()
2.4.3 ravel()
ravel是将目标数组展开成一维数组(按行展开)
2.4.4 np.meshgrid()
np.meshgrid(nd1,nd2)
构造了两个数组
1)把nd1展开成一行,把nd2展成一列
2)然后把nd1按行复制成和nd2的行数一致,把nd2按列复制成和nd1的列数一致
- 两个一维数组组合
- 一维数组和二维数组组合
- 二维数组和三维数组组合
2.4.4 np.c_[nd1,nd2]
np.c_[nd1,nd2]
取出nd1第0个维度的每一个元素,和nd2的第0个维度的每一个元素,对应组合在一起构成一行,然后把多个行再构成一个数组
【注意】nd1和nd2的形状必须一致
一维数组和一维数组组合
二维数组和二维数组组合
2.5 数组的级联
所谓级联就是将多个数组拼成一个
关于级联:
1、axis用于指定级联维度,默认为0
2、维度一致的数组才能级联
3、形状一致才能级联,对哪个维度进行级联把这个维度盖住,剩下的部分形状一致就可以级联
首先构造三个数组
nd1为4x4的二维数组,nd2为3x4的二维数组
nd3为4x3的二维数组
按行级联
参数axis,用于指定级联维度,默认是在第0个维度上级联,在二维数组中第0个维度就是行
- nd1,nd2两个二维数组列数一致(第一维度上元素数量相同)
可以按行级联
- 按行级联的时候列数必须一致(第0维度的下一个维度第1维度元素数量相同)
比如nd3,和nd1列数不一致,不能按行级联
按列级联
参数axis,用于指定级联维度,默认是在第0个维度上级联,在二维数组中第1个维度就是列
nd1和nd3行数一致
2) nd1,nd2两个数组不能按列级联
按列级联的时候行数必须一致,nd1为4行,nd2为3行
推广
- 维度不一致不能级联
nd3是一个3x4的二维数组,nd4是一个2x4x3的三维数组
如果级联
直接报错
- 形状不一致不能级联
- nd5和nd6都是3维数组,但是nd5是2x2x4的三维数组,nd6是2x3x4的三维数组,
第1维度下nd5有2个元素,nd6有3个元素
第1维度下形状不一致,不能级联
那这两个三维数组能不能在其他维度级联呢?2)第1维度下
可以级联
第2维度下呢?
报错,不能级联
这段话牢记
关于级联:
1、axis用于指定级联维度,默认为0
2、维度一致的数组才能级联
3、形状一致才能级联,对哪个维度进行级联把这个维度盖住,剩下的部分形状一致就可以级联