玩转Numpy——stack(),hstack(),vstack()函数简单介绍
作者:互联网
这三个函数的功能都是堆叠数组。一下看三者的详细用法和区别之处。
1,stack()函数:
函数原型为:stack(arrays, axis=0)
arrays可以传数组和列表,arrays里面的每个元素必须形状是一样的,否则程序了会报错。
axis默认值为0,0是按行堆叠,1是按列堆叠(有矩阵转置的效果)。
可结合以下代码理解:
import numpy as np
a=[1,2,3]
b=[4,5,6]
c=[[1,2,3],[4,5,6]]
print("List a:\n",a)
print("List b:\n",b)
print("List c:\n",c)
re=np.stack(c,axis=0)
print("c stack in rows:\n",re)
re=np.stack(c,axis=1)
print("c stack in columns:\n",re)
re=np.stack((a,b))
print("a and b are stack in rows:\n",re)
re=np.stack((a,b),axis=1)
print("a and b are stack in columns:\n",re)
输出结果:
List a:
[1, 2, 3]
List b:
[4, 5, 6]
List c:
[[1, 2, 3], [4, 5, 6]]
c stack in rows:
[[1 2 3]
[4 5 6]]
c stack in columns:
[[1 4]
[2 5]
[3 6]]
a and b are stack in rows:
[[1 2 3]
[4 5 6]]
a and b are stack in columns:
[[1 4]
[2 5]
[3 6]]
2,hstack函数()
函数原型hstack(tup)
tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。
hstack是把tup数组内最低维度的相同位置的元素按行顺序排列堆叠起来(同维度位置的为一行),返回的数组降了一个维度
可结合以下代码理解:
import numpy as np
a=[[1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]]
re=np.hstack(a)
print(re)
结果:
[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4]
[1,2,3,4],[1,2,3,4].......最低维度的相同位置的元素
import numpy as np
a=[[[1],[2],[3],[4]],
[[1],[2],[3],[4]],
[[1],[2],[3],[4]],
[[1],[2],[3],[4]]]
re=np.hstack(a)
print(re)
结果:
[[1 1 1 1]
[2 2 2 2]
[3 3 3 3]
[4 4 4 4]]
[1],[1],[1],[1]为相同维度相同位置的元素.(原数组大于三维时,具有降维转置的效果)
3,vstack()函数
函数原型vstack(tup)。
参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。
vstack是把tup数组内每个元素按列顺序排列堆叠起来.
import numpy as np
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
print(np.vstack((a,b,c,d)))
输出:
[[1]
[2]
[3]
[1]
[2]
[3]
[1]
[2]
[3]
[1]
[2]
[3]]
import numpy as np
a=[[[[1,2],[2,2],[3,2],[1,4]],
[[1,2],[2,2],[3,2],[1,4]],
[[1,2],[2,2],[3,2],[1,4]],
[[1,2],[2,2],[3,2],[1,4]]]]
re=np.vstack(a)
print(re)
结果:
[[[1 2]
[2 2]
[3 2]
[1 4]]
[[1 2]
[2 2]
[3 2]
[1 4]]
[[1 2]
[2 2]
[3 2]
[1 4]]
[[1 2]
[2 2]
[3 2]
[1 4]]]
标签:hstack,numpy,print,vstack,re,数组,np,Numpy,stack 来源: https://blog.csdn.net/helloword111222/article/details/120577720