Numpy中stack(),hstack(),vstack()函数详解

来源:互联网 发布:酒精刻录软件 编辑:程序博客网 时间:2024/06/09 11:10
1. stack()函数 

函数原型为:stack(arrays, axis=0),arrays可以传数组和列表,axis默认为0.

stack是对arrays在axis出增加一维,怎么理解呢,先看一个例子

import numpy as npa=[[1,2,3],   [4,5,6]]b=[[1,2,3],   [4,5,6]]c=[[1,2,3],   [4,5,6]]print("增加一维,新维度的下标为0")d=np.stack((a,b,c),axis=0)print(d)print("增加一维,新维度的下标为1")d=np.stack((a,b,c),axis=1)print(d)print("增加一维,新维度的下标为2")d=np.stack((a,b,c),axis=2)print(d)输出:增加一维,新维度的下标为0[[[1 2 3]  [4 5 6]] [[7 8 9]  [10 11 12]] [[13 14 15]  [16 17 18]]]增加一维,新维度的下标为1[[[1 2 3]  [7 8 9]  [13 14 15]] [[4 5 6]  [10 11 12]  [16 17 18]]]增加一维,新维度的下标为2[[[1 7 13]  [2 8 14]  [3 9 15]] [[4 10 16]  [5 11 17]  [6 12 18]]] 
直白点理解就是将指定维度的对应位置上的元祖合并为一个元素,什么意思呢。

比如A.shape = (3,2,3),那么axis=1时,那么我们将第二维度里边对应位置的元素合并为新的元素,比如,第二维的第一个元素,

[1 2 3],[7 8 9],[13 14 15]合并得到一个新的元素[[4 5 6][10 11 12][16 17 18]]]那么新的数组大小就变成了(2,3,3);axis=2

时,那么我们将第三维度里边对应位置的元素合并为新的元素,和第二维的一样,shape大小变为了(2,3,3);axis=0时,就好理

解了,直接在最外边加个大括号。


2. hstack()函数

函数原型:hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。看下面的代码体会它的含义

import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.hstack((a,b)))

输出:[1 2 3 4 5 6 ]
3. vstack()函数

函数原型:vstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。看下面的代码体会它的含义

import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.vstack((a,b)))

输出:
[[1 2 3]
[4 5 6]]





阅读全文
0 0
原创粉丝点击