Numpy数组拼接
#### 拼接
Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等类和函数用于数组拼接的操作。各种函数的特点和区别如下表:
在我们学习拼接之前我们先了解一些轴和维度。
上一篇我们提到numpy中的ndim和shape来分别查看维度,以及在对应维度上的长度的。而其中的axis表示的是轴
##### concatenate函数
```
concatenate(tuple, axis=0, out=None)
"""
参数说明:
tuple:对需要合并的数组用元组的形式给出
axis: 沿指定的轴进行拼接,默认0,即第一个轴
"""
```
比如我们有两个数组:
所以是对两个数组进行了axis=0轴的合并,如果将axis换成1则变成:
##### append函数
函数的说明如下:
```
append(arr, values, axis=None)
"""
参数说明:
arr:类似array的数据
values: 类似array的数据
axis:进行append操作的axis的方向,默认无
"""
```
代码示例:
大家发现,若axis为None,则先将arr和values进行ravel扁平化,再拼接;如果指定axis=0表示x轴的拼接,而如果axis=1表示y轴的拼接。
##### stack函数
函数的说明如下:
```
stack(arrays, axis=0, out=None)
"""
沿着指定的axis对arrays(每个array的shape必须一样)进行拼接,返回值的维度比原arrays的维度高1
axis:默认为0,即第一个轴,若为-1即为第二个轴
"""
```
代码演示:(仍然使用上面的data1和data2)
可以发现如果axis=1,就是x轴的依次进行组合,如果是axis=-1就是两个数组的列进行组合。 当然如果想直接进行行或者列的拼接也可以使用:hstack、vstack分别表示只进行行的拼接,或者列的拼接,类似上面的axis=1或axis=-1的情况。
总结:
增加行(对行进行拼接)的方法有
```
np.concatenate((ar1, ar2),axis=0)
np.append(ar1, ar2, axis=0)
np.vstack((ar1,ar2))
```
增加列(对列进行拼接)的方法有:
```
np.concatenate((ar1, ar2),axis=1)
np.append(ar1, ar2, axis=1)
np.hstack((ar1,ar2))
```
内容比较多,大家要多多练习哦!
更多关于“Python培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!