Python使用Numpy变换数组形状
一、 修改数组的形状
1、重塑数组形状
| 方法 | 作用 | 
|---|---|
| reshape() | 不修改原数组的形状,返回一个视图,会影响原数组的数据 | 
| resize() | 直接作用于原数组 | 
| shape() | 直接作用于原数组 | 
若不理解视图,可以通过 视图与拷贝 这篇博客进行了解。
ndarry.reshape()
1  | ndarry.reshape(shape)  | 
代码:
1  | import numpy as np  | 
ndarry.resize()
1  | resize(shape) :谨慎使用!  | 
代码
1  | n1 = np.array([[2,4,3,2],[8,4,2,9],[8,3,4,9]])  | 
ndarry.shape
1  | shape  | 
代码
1  | n1 = np.array([[2,4,3,2],[8,4,2,9],[8,3,4,9]])  | 
2、多维数换向一维数组转换
ndarry.ravel()
1  | ndarry.ravel(order=)  | 
代码
1  | n1  | 
ndarry.flatten()
1  | ndarry.flatten(order=)  | 
代码
1  | n1  | 
ndarry.reshape(-1)
函数说明
1  | n1.reshape(-1)  | 
代码
1  | n1  | 
3、 增加一个维度
np.newaxis()所在位置增加一个维度
一维扩展为二维
1  | # 一维度数组  | 
二维扩展为三维
1  | # 二维度数组  | 
以此类推,将小维度数组扩展成更多维的数组。
4、数组行列转置
ndarray.T 属性
1  | n2  | 
ndarray.transpose()
1  | # 同ndarray.T  | 
ndarray.swapaxes(1,0)
1  | # 必须填入两个参数,进行行列转换  | 
二、数据的拼接(合并)
np.hstack()水平拼接
1  | np.hstack(tup) 数组的水平拼接  | 
代码
1  | # 准备数组1  | 
np.vstack()竖直拼接
1  | np.vstack(tup) 数组的水平拼接  | 
代码
1  | # 准备数组1  | 
np.concatenate()指定数组的拼接方向
1  | np.concatenate((a1, a2, ...), axis=0, out=None)  | 
代码
1  | # 准备数组1  | 
三、 数据的复制
np.tile(ndarry,(m,n))指定数组的方向复制
1  | np.tile(ndarry,(m,n))  | 
代码
1  | a2  |