1、数组形状改变
- Numpy中提供了reshape等方法改变数组的形状,但不改变数据的值
- 可以对数组转换为一维,即展平
- 可以将多个数组,组合成一个更大的数组
- 三维数组的创建和索引
(1)改变形状—— .reshape()方法
1)改变形状,原数组不发生变化
arr.reshape(a,b)的参数中,只要其中一个参数是确定的,另一个参数就会自动计算出
2) 当改变形状的时候修改数组的值,原数组的形状没有变化,相对应的值会改变
(2)改变形状—— .resize()方法
reshape方法返回改变形状后的数组,并且原数组不发生改变
resize方法没有返回值,直接改变原数组的形状
(3)改变形状——shape方法
(4)降维—— .ravel()方法和.flatten()方法
1)降维的方式基本相同,参数order = Flase表示纵向,默认order = True表示横向
2)对数据进行修改时的区别
flatten方法,原数组的形状和值都没有变化
ravel方法,原数组的形状没有变化,但是值发生了改变
(5)增加维度——np.newaxis
一维数组变二维数组,np.newaxis的作用是增加维度
(6)合并—— .hstack() 和 .vstack() 和 .concatenate()方法
(7)复制——.tile()方法
(8)创建三维数组
2、数组形状改变总结
- 数组形状处理手段主要有reshape、resize、ravel、flatten、vstack、hstack等函数
- reshape和resize只要用于改变数组的形状,请注意区别
- ravel和flatten对数组直接进行一维转换,展平为一维数组
- ravel、flatten和reshape虽然都可以对数组进行一维转置,但是ravel和reshape 返回的是视图,而flatten 返回的是复制,视图上进行元素修改会改变原数组的值
- vstack和hstack用于合并数组,一个纵向合并,一个横向合并
- np.concatenate用于合并数组,0代表纵向,1代表横向