Numpy的array合并
2019-07-20 本文已影响0人
李小夭
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
vstack:vertical stack 上下合并
A和B均为3个元素的序列,上下合并后C为2行3列的矩阵
C = np.vstack((A,B))
print(C)
print(A.shape,C.shape)
[[1 1 1]
[2 2 2]]
(3,) (2, 3)
hstack:horizontal stack 左右合并
A和B均为3个元素的序列,左右合并后D为6个元素的序列
D = np.hstack((A,B))
print(D)
print(A.shape,D.shape)
[1 1 1 2 2 2]
(3,) (6,)
将原来的横向序列变成纵向序列后再进行合并
- 尝试T行列转置,结果发现对于一维序列无效
print(A)
print(A.T)
[1 1 1]
[1 1 1]
- 用reshape更改序列形状有效
print(A)
print(A.reshape(3,1))
[1 1 1]
[[1]
[1]
[1]]
使用reshape改变序列形状后进行合并
# 改变序列形状
A = np.array([1,1,1]).reshape(3,1)
B = np.array([2,2,2]).reshape(3,1)
print(A)
print(B)
[[1]
[1]
[1]]
[[2]
[2]
[2]]
# 合并
C = np.hstack((A,B))
print(C)
[[1 2]
[1 2]
[1 2]]
用concatenate进行横向和纵向的array合并
axis = 0 上下合并
C = np.concatenate((A,B),axis = 0)
print(C)
[[1]
[1]
[1]
[2]
[2]
[2]]
axis = 1 左右合并
C = np.concatenate((A,B),axis = 1)
print(C)
[[1 2]
[1 2]
[1 2]]