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]]
 ICP备案:
 公安联网备案: