【1.3】Numpy学习-数组的堆叠

数组的堆叠

示例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)




猜你喜欢

转载自blog.csdn.net/weixin_30935137/article/details/80835224
今日推荐