stack(): 数据重组

stack(arrays , axi=0或者1)

arrays可以是数组、列表

axi=0的意思是,把arrays里面的每一个元素arrays[0]~arrays[n]按行重新组合在一起:

a=[[1, 2, 3], [4, 5, 6]]

》np.stack(a,axis=0)
》[[1 2 3]
 [4 5 6]]

axi=1的意思是,把arrays里面的每一个元素arrays[0]~arrays[n]按列重新组合在一起

a=[[1, 2, 3], [4, 5, 6]]

》np.stack(a,axis=1)
》[[1 4]
 [2 5]
 [3 6]]

 

hstack():按列拼接

hstack(tup),tup可为元组,列表,或者numpy数组。hstack把tup中每一个元素tup[i]按列拼接:

a=[1,2,3]
b=[4,5,6]


》np.hstack((a,b))  # (a,b) = ([1, 2, 3], [4, 5, 6])
》[1 2 3 4 5 6 ]

 

vstack():按行拼接

vstack(tup),跟hstack一样,tup可为元组,列表,或者numpy数组。

vstack将tup的每一个元素tup[i]按列重新组合在一起。

a=[1,2,3]
b=[4,5,6]

》np.vstack((a,b))
》[[1 2 3]
 [4 5 6]]

其实这样描述会有很多误解,比如为什么hstack和vstack明明是拼接,为什么只有一个tup(数组、元组或者列表)。

其实三者的共同之处就是重组,要拼接,其实我们是先将他们用括号(a,b)连接起来了,然后重组的。所以其实它的功能本质上就是数据结构的重组。那么reshape也是重组,有什么区别呢?

stack\hstack\vstack他们的重组,实际上是将里面的元素按行或者按列重新打包,和reshape是重新排列,下图了然。

stack(),hstack(),vstack()三个常用函数功能

所谓重组,就是加一个维度,来重组数组。左上第一个其实是特列,在hstack看来,[1 2 3 ] ,[4 5 6]其实本身就是一行按顺序堆叠好的数,也就是在Hstack看来,它就是[1 2 3 4 5 6]。按行堆叠

后者就比较明细那了,[1 2 3 ] ,[4 5 6]按列堆叠。

 

相关文章:

  • 2023-02-23
  • 2021-06-07
  • 2021-07-06
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-19
相关资源
相似解决方案