np的stack\hstack\vstack\concatenate 放到一起

import numpy as np
# np.stack的官方解释为 对指定axis增加维度,
# 我们发现y2.shape为(2,3,3),注意x1.shape为(3,3)也可以看做(1,3,3),
# 当给x1的axis = 0也就是第一维增加一维后就变成了(2,3,3),这刚好是y2.shape,
# 那x1增加的这个维度的内容用什么来填充呢?当然是x2了!(所以,也要明白的就是x1和x2的shape一定要相同)
# 当axis = 0时,
x1 = np.arange(9).reshape((3,3))
x2 = np.arange(10,19,1).reshape((3,3))

y2 = np.stack((x1,x2),axis=0)
print(x1)
print(x2)
# print(np.stack(x1,axis=0))
print(y2)

# 当axis = 1时,
# 当axis = 1时,对二维平面的行进行增加,所以本来应该是1行的,经过x2填充变成了2行。
x1 = np.arange(9).reshape((3,3))
x2 = np.arange(10,19,1).reshape((3,3))

y2 = np.stack((x1,x2),axis=1)
# 当axis = 2
x1 = np.arange(9).reshape((3,3))
x2 = np.arange(10,19,1).reshape((3,3))
y2 = np.stack((x1,x2),axis=1)

a=[[1,2,3],
   [4,5,6]]
print("列表a如下:")
print(a)

print("增加一维,新维度的下标为0")
c=np.stack(a, axis=0)
print(c)
print(c.shape)

print("增加一维,新维度的下标为1")
c=np.stack(a,axis=1)
print(c)
# a=np.array([[1,2],
#             [3,4]])
# print(np.max(a))

Numpy中stack(),hstack(),vstack()函数详解 - 张康的博客 - CSDN博客

https://blog.csdn.net/csdn15698845876/article/details/73380803

他是那个盒子理论;

np.stack函数 - 简书

https://www.jianshu.com/p/39112a4c0616

上面的代码出自这里。

下面是我自己,纸面写的,自己的理解:

下面是实例

import numpy as np
In [2]:

p.arange(12).reshape((2,2,3))
a
a = np.arange(12).reshape((2,2,3))
a
Out[2]:
array([[[ 0,  1,  2],
        [ 3,  4,  5]],

       [[ 6,  7,  8],
        [ 9, 10, 11]]])
In [3]:

b
b = np.arange(12,24,1).reshape((2,2,3))
b
Out[3]:
array([[[12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23]]])
In [5]:

0
d0 = np.stack([a, b], axis=0)
d0
Out[5]:
array([[[[ 0,  1,  2],
         [ 3,  4,  5]],

        [[ 6,  7,  8],
         [ 9, 10, 11]]],


       [[[12, 13, 14],
         [15, 16, 17]],

        [[18, 19, 20],
         [21, 22, 23]]]])
In [6]:

d1
d1 = np.stack([a, b], axis=1)
d1
Out[6]:
array([[[[ 0,  1,  2],
         [ 3,  4,  5]],

        [[12, 13, 14],
         [15, 16, 17]]],


       [[[ 6,  7,  8],
         [ 9, 10, 11]],

        [[18, 19, 20],
         [21, 22, 23]]]])
In [7]:

d2
d2 = np.stack([a, b], axis=2)
d2
Out[7]:
array([[[[ 0,  1,  2],
         [12, 13, 14]],

        [[ 3,  4,  5],
         [15, 16, 17]]],


       [[[ 6,  7,  8],
         [18, 19, 20]],

        [[ 9, 10, 11],
         [21, 22, 23]]]])

****************************************************************

2019-0728 又遇到这个问题了,加一条:

表明 

np.concatenate(a,axis=0) 与 np.vstack(a) 一致
np.concatenate(a,axis=1) 与 np.hstack(a) 一致
import  numpy as np
a = np.random.randint(1, 9,size=(2,3,4))
print(a)
print('*'*50)
print(np.concatenate(a,axis=0))
print('*'*50)
print(np.concatenate(a,axis=1))
print('*'*50)
print(np.vstack(a))
print('*'*50)
print(np.hstack(a))

下图是结果

[[[5 8 2 8]
  [1 1 3 3]
  [8 2 6 3]]

 [[6 8 3 8]
  [4 1 7 8]
  [8 1 7 2]]]
**************************************************
[[5 8 2 8]
 [1 1 3 3]
 [8 2 6 3]
 [6 8 3 8]
 [4 1 7 8]
 [8 1 7 2]]
**************************************************
[[5 8 2 8 6 8 3 8]
 [1 1 3 3 4 1 7 8]
 [8 2 6 3 8 1 7 2]]
**************************************************
[[5 8 2 8]
 [1 1 3 3]
 [8 2 6 3]
 [6 8 3 8]
 [4 1 7 8]
 [8 1 7 2]]
**************************************************
[[5 8 2 8 6 8 3 8]
 [1 1 3 3 4 1 7 8]
 [8 2 6 3 8 1 7 2]]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值