python中numpy合并和分割

两个矩阵或序列进行合并
A=np.array([1,1,1]) B=np.array([2,2,2]) print(np.vstack(A,B))# 上下合并 vertical stack D=np.hstack((A,B))#左右合并 horizontal stack
上下合并结果为
[[1,1,1],
[2,2,2]]
左右合并[1,1,1,2,2,2]
注意A.T不能转换成竖向的序列
要采用
A.[np.newaxis,:]冒号在右边则代表在行上加了一个维度
A.[:,np.newaxis]冒号在左边则代表在列上加了一个维度,可实现转换成竖向的序列。
[
[1],
[1],
[]]
]
故如果想要转换成下图所示
uploading-image-788153.png


A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]
np.hstack(A,B)

np.concatenate((A,B,B,A),axis=0)可对多个序列或矩阵进行合并,合并后矩阵.0表示上下合并成列向。
1表示左右合并行向。


从横向分割或纵向分割


如果无法按此规则分割,则程序报错。

故np.split()不支持不等量分割。
这里需要用np.array_split()来进行不等量分割。
会将无法等量分割,分割一个一个一维的序列或矩阵

np.vsplit(A,3)纵向分成3块(仅支持等量分割,与np.split()相似,只是不用传axis参数,即等于axis=0)
np.hsplit(A,2)横向分成2块。(仅支持等量分割,与np.split()相似,只是不用传axis参数,即等于axis=1)、

posted @ 2020-07-11 21:58  hisweetyGirl  阅读(3028)  评论(0编辑  收藏  举报