NumPy数组拼接的多个方法(附带实例)
在 NumPy 中,提供了 4 个函数实现数组的连接,下面对这几个函数进行介绍。
【实例】利用 concatenate() 函数实现数组的连接。
【实例】利用 stack() 函数实现数组的连接。
【实例】利用 hstack() 函数实现数组的连接。
【实例】利用 vstack() 函数实现数组的连接。
NumPy concatenate()函数
numpy.concatenate() 函数用于沿指定轴连接相同形状的两个或多个数组,函数的调用格式为:numpy.concatenate((a1,a2,...), axis)
- a1, a2, ... 表示相同类型的数组;
- axis 为沿着它连接数组的轴,默认为 0。
【实例】利用 concatenate() 函数实现数组的连接。
import numpy as np a = np.array([[1,2],[3,4]]) print('第一个数组:') print(a) print('\n') b = np.array([[5,6],[7,8]]) print('第二个数组:') print(b) print('\n') # 两个数组的维度相同 print('沿轴 0 连接两个数组, 竖向拼接矩阵:') print(np.concatenate((a,b))) print('\n') print('沿轴 1 连接两个数组, 横向拼接矩阵:') print(np.concatenate((a,b),axis = 1))运行程序,输出如下:
第一个数组:
[[1 2]
[3 4]]
第二个数组:
[[5 6]
[7 8]]
沿轴0连接两个数组, 竖向拼接矩阵:
[[1 2]
[3 4]
[5 6]
[7 8]]
沿轴1连接两个数组, 横向拼接矩阵:
[[1 2 5 6]
[3 4 7 8]]
NumPy stack()函数
numpy.stack() 函数用于沿新轴连接数组序列,函数格式如下:numpy.stack(arrays, axis)
- arrays 为相同形状的数组序列;
- axis 为返回数组中的轴,输入数组沿着它来堆叠。
【实例】利用 stack() 函数实现数组的连接。
import numpy as np a = np.array([[1,4],[3,5]]) print('第一个数组:') print(a) print('\n') b = np.array([[6,8],[7,9]]) print('第二个数组:') print(b) print('\n') print('沿轴0堆叠两个数组:') print(np.stack((a,b),0)) print('\n') print('沿轴1堆叠两个数组:') print(np.stack((a,b),1))运行程序,输出如下:
第一个数组: [[1 4] [3 5]] 第二个数组: [[6 8] [7 9]] 沿轴0堆叠两个数组: [[[1 4] [3 5]] [[6 8] [7 9]]] 沿轴1堆叠两个数组: [[[1 4] [6 8]] [[3 5] [7 9]]]
NumPy hstack()函数
numpy.hstack() 是 numpy.stack() 函数的变体,它通过水平堆叠来生成数组。【实例】利用 hstack() 函数实现数组的连接。
import numpy as np a = np.array([[1,4],[3,5]]) print('第一个数组:') print(a) print('\n') b = np.array([[6,8],[7,9]]) print('第二个数组:') print(b) print('\n') print('水平堆叠:') c = np.hstack((a,b)) print(c) print('\n')运行程序,输出如下:
第一个数组:
[[1 4]
[3 5]]
第二个数组:
[[6 8]
[7 9]]
水平堆叠:
[[1 4 6 8]
[3 5 7 9]]
NumPy vstack()函数
numpy.vstack() 是 numpy.stack() 函数的变体,它通过垂直堆叠来生成数组。【实例】利用 vstack() 函数实现数组的连接。
import numpy as np a = np.array([[1,4],[3,5]]) print('第一个数组:') print(a) print('\n') b = np.array([[6,8],[7,9]]) print('第二个数组:') print(b) print('\n') print('竖直堆叠:') c = np.vstack((a,b)) print(c) print('\n')运行程序,输出如下:
第一个数组:
[[1 4]
[3 5]]
第二个数组:
[[6 8]
[7 9]]
竖直堆叠:
[[1 4]
[3 5]
[6 8]
[7 9]]