Numpy——数组合并

1.np.vstack()

对于一个array的合并,我们可以想到按行、按列等多种方式进行合并。

import numpy as np
A = np.array([1,2,3,4,5,6])
B = np.array([6,5,4,3,2,1])

print(A)
print(B)
print(np.vstack((A,B)))    #沿着竖直方向将矩阵堆叠起来
C = np.vstack((A,B))
print(C)
print(A.shape , B.shape, C.shape)

vertical stack本身属于一种上下合并,即对括号中的两个整体进行对应操作

2.np.hstack()

左右合并

import numpy as np
A = np.array([1,2,3,4,5,6]) 
B = np.array([6,5,4,3,2,1])
D = np.hstack((A,B))
print(D)
print(A.shape, B.shape, D.shape)

3.np.newaxis()

对于非矩阵,此时就需要我们借助其他的函数操作进行转置:

import numpy as np
A = np.array([1,2,3,4,5,6]) 

print(A)
print(A.shape)
print(A[np.newaxis,:])  #在行方向加了一个维度
print(A[np.newaxis,:].shape)

print(A[:,np.newaxis])  #在列方向加了一个维度
print(A[:,np.newaxis].shape)

4.综合newaxis、vstack、hstack

import numpy as np
A = np.array([1,2,3,4,5,6])[:,np.newaxis]  #在列方向加了一个维度
B = np.array([6,5,4,3,2,1])[:,np.newaxis]

C = np.vstack((A,B))    #在垂直方向合并A、B
D = np.hstack((A,B))    ##在水平方向合并A、B
print(C)
print(D)
print(A.shape,B.shape,C.shape,D.shape)

5.np.concatenate()

当你的合并操作需要针对多个矩阵或序列时,借助concatenate函数可能会让你使用起来比前述的函数更加方便:

import numpy as np
A = np.array([1,2,3,4,5,6])[:,np.newaxis]
B = np.array([6,5,4,3,2,1])[:,np.newaxis]

C = np.concatenate((A,A,B,B,A,A),axis = 1)
print(C)
D = np.concatenate((A,A,B,B,A,A),axis = 0)
print(D)

axis能控制矩阵的横向或纵向,相比较vstack和hstack函数显得更加方便。

发布了123 篇原创文章 · 获赞 341 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/104821247