这次分享下numpy中矩阵的合并与分割,希望能帮助到大家。
在此附上视频链接
一、引入numpy第三方库
首先我们引入numpy这个第三方库,如果有同学没安装numpy可在命令行中pip install numpy进行安装(Mac用户 sudo pip3 install numpy)
import numpy as np
二、array的合并
1.垂直合并
A = np.array([1, 1, 1])
B = np.array([2, 2, 2])
print(np.vstack((A, B)))
2.水平合并
print(np.hstack((A, B)))
C = np.array([1, 1, 1])[:, np.newaxis] # 纵向加一个维度,将array转为3行1列的矩阵
D = np.array([2, 2, 2])[:, np.newaxis]
E = np.concatenate((C, D, D, C), axis=1) # axis=1为水平合并, axis=0为垂直合并
print(E)
3.array的合并代码示例
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.array([1, 1, 1])[:, np.newaxis] # 纵向加一个维度,将array转为3行1列的矩阵
D = np.array([2, 2, 2])[:, np.newaxis]
print('打印A与B:')
print(A)
print(B)
print('\n垂直合并:')
print(np.vstack((A, B)))
print('\n水平合并:')
print(np.hstack((A, B)))
print('\n水平合并,axis=1 为水平合并 反之为垂直合并:')
E = np.concatenate((C,D,D,C),axis=1)
print(E)
运行效果如下:
numpy6.png
三、矩阵的分割
1.水平分割
A = np.array(12).reshape((3, 4))
print(np.split(A, 2, axis=1)) # 表示对A进行分割,分为两块,axis=1为水平分割
print(np.hsplit(A, 2)) # 效果同上
print(np.array_split(A, 3, axis=1)) # 不均等分割
2.垂直分割
print(np.split(A, 3, axis=0)) # 表示对A进行分割,分为3块,axis=0为垂直分割
print(np.vsplit(A, 3)) # 效果同上
print(np.array_split(A, 2, axis=0)) # 不均等分割
3.矩阵分割代码示例
import numpy as np
A = np.arange(12).reshape((3,4))
print('打印矩阵A:')
print(A)
print('\n水平分割为两块:')
print(np.split(A, 2, axis=1)) # 表示对A进行分割,分为两块,axis=1为水平分割
print('\n垂直分割为3块:')
print(np.vsplit(A, 3)) # 不均等分割
print('\n垂直不均等分割:')
print(np.array_split(A, 2, axis=0))
运行效果如下:
numpy7.png
好啦,以上就是这次对矩阵的合并与分割的一些方法。
欢迎大家在下方评论与留言或者给出建议,如有错误请指出。希望这篇博文能帮助到刚学习这个的同学,也欢迎大家分享给需要的人。
如需转载,请注明出处。
网友评论