其他分享
首页 > 其他分享> > 玩转Numpy——stack(),hstack(),vstack()函数简单介绍

玩转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