numpy中stack_axis的理解

1、np.stack连接

1、代码

# 沿着新轴连接数组的序列
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
# [[1 2 3]
#  [2 3 4]]
print(np.stack((a, b), axis=0))
# [[1 2]
#  [2 3]
#  [3 4]]
print(np.stack((a, b), axis=1))

2、axis=0/1/2之间的不同

1、求和代码

a = [[[1, 2, 3, 4],
      [5, 6, 7, 8],
      [9, 10, 11, 12]],
     [[13, 14, 15, 16],
      [17, 18, 19, 20],
      [21, 22, 23, 24]]]

# 块与块之间进行运算
#  a.shape = 2x3x4
sum_0 = np.sum(a, axis=0)
# 3*4
# [[14 16 18 20]
#  [22 24 26 28]
#  [30 32 34 36]]
print(sum_0)
sum_1 = np.sum(a, axis=1)
# # 2*4
# [[15 18 21 24]
#  [51 54 57 60]]
print(sum_1)
sum_2 = np.sum(a, axis=2)
# 2*3
# [[10 26 42]
#  [58 74 90]]
print(sum_2)

2、stack堆叠代码

import numpy as np

a = np.array([i for i in range(12)]).reshape(3, 4)
b = np.array([i for i in range(12, 24)]).reshape(3, 4)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
print(a)
# [[12 13 14 15]
#  [16 17 18 19]
#  [20 21 22 23]]
print(b)

# 对2个3*4的二维数据进行操作
print("-------------------")
x1 = np.stack([a, b], axis=0)
# 在2这个维度上进行操作,两个二维数组只是正常叠加,格式未发生太大的变化。
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
#
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]
print(x1)

print("-------------------")
x2 = np.stack([a, b], axis=1)
# 堆叠方向(第一维)为第一行上堆叠
# [[[ 0  1  2  3]
#   [12 13 14 15]]
#
#  [[ 4  5  6  7]
#   [16 17 18 19]]
#
#  [[ 8  9 10 11]
#   [20 21 22 23]]]
print(x2)

print("-------------------")
x3 = np.stack([a, b], axis=2)
# 堆叠方向(第二维),拿出两个二维数组中的数据,先补全某一行
# [[[ 0 12]
#   [ 1 13]
#   [ 2 14]
#   [ 3 15]]
#
#  [[ 4 16]
#   [ 5 17]
#   [ 6 18]
#   [ 7 19]]
#
#  [[ 8 20]
#   [ 9 21]
#   [10 22]
#   [11 23]]]
print(x3)

3、vstack测试

# 只有一层中括号时会报错。
v8 = np.array([[1, 2, 3]])
v9 = np.array([[4, 5, 6]])
# (v8, v9)外面的小括号去掉时会报错。
# [[1 2 3]
#  [4 5 6]]
print(np.vstack((v8, v9)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值