Python:reshape()函数
reshape()是数组对象中的方法,用于改变数组的形状。
a.reshape(m,n)表示将原有数组a转化为一个m行n列的新数组,a自身不变。m与n的乘积等于数组中的元素总数;reshape(m,n)中参数m或n其中一个可写为"-1","-1"的作用在于计算机根据原数组中的元素总数自动计算行或列的值。
a = np.array(range(10),float) #a数组是随机生成的10个浮点数构成的数组
a
在jupyter-notebook中输出结果如下:
a.reshape(5,-1) #将数组a改为一个5行的二维新数组,原数组a并未改变
在jupyter-notebook中输出结果如下:
a #再次输出数组a,自身不变,依然是一维数组
在jupyter-notebook中输出结果如下:
只有将a.reshape的值赋予a时,a才会发生改变
a = a.reshape(-1, 2) #将a.reshape的值赋予a,改变a形状,默认行优先,即先横着排
a
在jupyter-notebook中输出结果如下:
np.arange(36).reshape(1,6,6) #构建三维数组
np.arange(36).reshape(1,6,6) #构建三维数组
在jupyter-notebook中输出结果如下:
- 注意直接构建时三维数组的外面是一个()和两个[]
reshape()函数的默认排列方式
numpy中reshape()的默认排列方式是"按行"排列,即行优先,reshape(m,n)=reshape(m,n,order=‘c’);若要改为“按列”排列,可通过修改order参数进行改变,即reshape(m,n,order=‘f’)。
a.reshape(5,-1,order='c')
在jupyter-notebook中输出结果如下:
a.reshape(5,-1,order='F') #即先竖着按列排
在jupyter-notebook中输出结果如下: