数组的堆叠
示例1:水平堆叠
import numpy as np
a = np.arange(5)
b = np.arange(5,9)
print(a,a.shape)
print(b,b.shape)
ar1 = np.hstack((a,b)) # 注意:((a,b))
print(ar1,ar1.shape)
print('------------------------------------')
a = np.array([[1],[2],[3]]) # a为二维数组,3行1列
b = np.array([['a'],['b'],['c']]) # b为二维数组,3行1列
print(a,a.shape)
print(b,b.shape)
ar2 = np.hstack((a,b))# 注意:((a,b)),这里形状必须一样
print(ar2,ar2.shape)
print('------------------------------------')
结果如下:
[0 1 2 3 4] (5,)
[5 6 7 8] (4,)
[0 1 2 3 4 5 6 7 8] (9,)
------------------------------------
[[1]
[2]
[3]] (3, 1)
[['a']
['b']
['c']] (3, 1)
[['1' 'a']
['2' 'b']
['3' 'c']]
示例2:垂直堆叠
a = np.arange(5)
b = np.arange(5,10)
print(a,a.shape)
ar1 = np.vstack((a,b))
print(ar1,ar1.shape)
#垂直堆叠
print('------------------------')
a = np.array([[1],[2],[3]])
b = np.array([['a'],['b'],['c'],['d']])
print(a,a.shape)
print(b,b.shape)
ar2 = np.vstack((a,b)) # 这里形状可以不一样
print(ar2,ar2.shape)
# 垂直堆叠
结果如下:
[0 1 2 3 4] (5,)
[[0 1 2 3 4]
[5 6 7 8 9]] (2, 5)
------------------------
[[1]
[2]
[3]] (3, 1)
[['a']
['b']
['c']
['d']] (4, 1)
[['1']
['2']
['3']
['a']
['b']
['c']
['d']] (7, 1)
示例3
a = np.arange(5)
b = np.arange(5,10)
print(a,a.shape)
print(b,b.shape)
ar1 = np.stack((a,b))
ar2 = np.stack((a,b),axis=1)
print(ar1,ar1.shape)
print(ar2,ar2.shape)
# axis参数,假设有两个数组[1 2 3]和[4 5 6]
# axis=0: [[1 2 3] [4 5 6]],shape为(2,3)
# axis=1:[[1 4] [2 5] [3 6]],shape为(3,2)
结果如下:
[0 1 2 3 4] (5,)
[5 6 7 8 9] (5,)
[[0 1 2 3 4]
[5 6 7 8 9]] (2, 5)
[[0 5]
[1 6]
[2 7]
[3 8]
[4 9]] (5, 2)