在写代码时,经常会遇到多个矩阵数组拼接的情况,numpy里dstack, hstack, vstack, 都有拼接的作用,那么这些函数是怎么执行的,他们的结果又如何呢?
np.dstack()
按深度顺序堆叠arrays。当数组为2维数组(M,N)或1维数组(N,)时,首先分别将其维度改变为(M,N,1)、(1,N,1),然后沿着第三根轴(r/g/b通道)进行拼接。
栗子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 一维 a = np.array([ 1 , 2 ]) b = np.array([ 3 , 4 ]) print (np.dstack((a,b))) # 二维 a = np.array([[ 1 , 1 ], [ 2 , 2 ], [ 3 , 3 ]]) b = np.array([[ 4 , 4 ], [ 5 , 5 ], [ 6 , 6 ]]) print (np.dstack((a,b))) # 运行结果 [[[ 1 3 ] [ 2 4 ]]] [[[ 1 4 ] [ 1 4 ]] [[ 2 5 ] [ 2 5 ]] [[ 3 6 ] [ 3 6 ]]] |
np.hstack()
水平方向(列)顺序堆叠arrays。
栗子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import numpy as np # 一维 a = np.array([ 1 , 2 ]) b = np.array([ 3 , 4 ]) print (np.hstack((a,b))) # 二维 a = np.array([[ 1 , 1 ], [ 2 , 2 ], [ 3 , 3 ]]) b = np.array([[ 4 , 4 ], [ 5 , 5 ], [ 6 , 6 ]]) print (np.hstack((a,b))) # 运行结果 [ 1 2 3 4 ] [[ 1 1 4 4 ] [ 2 2 5 5 ] [ 3 3 6 6 ]] |
np.vstack()
垂直方向(行)顺序堆叠arrays。
栗子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 一维 a = np.array([ 1 , 2 ]) b = np.array([ 3 , 4 ]) print (np.vstack((a,b))) # 二维 a = np.array([[ 1 , 1 ], [ 2 , 2 ], [ 3 , 3 ]]) b = np.array([[ 4 , 4 ], [ 5 , 5 ], [ 6 , 6 ]]) print (np.vstack((a,b))) # 运行结果 [[ 1 2 ] [ 3 4 ]] [[ 1 1 ] [ 2 2 ] [ 3 3 ] [ 4 4 ] [ 5 5 ] [ 6 6 ]] |
到此这篇关于numpy中np.dstack()、np.hstack()、np.vstack()用法的文章就介绍到这了,更多相关np.dstack()、np.hstack()、np.vstack()内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_43965708/article/details/115673439