关于python numpy包 hastack() vstack() stack()三个函数功能的实验性探究

本文详细探讨了numpy中的hstack()、vstack()和stack()函数,通过实例展示了它们在连接数组时的不同行为。hstack()按第二个维度连接三维及以上数组,vstack()按最高维连接,而stack()函数则会新增一个维度,并根据axis参数确定新轴的位置。通过对不同维度数组的操作,揭示了这三个函数在处理多维数据时的规律和特点。
摘要由CSDN通过智能技术生成

hstack()

hstack()函数通常被我们称为行连接函数,即按行连接数组,
但它真的是按行连接吗?
对于三维及以上的数组,行又指什么呢?

我们先来看几段代码(代码后面是输出):

import numpy as np
a=np.array([1,2,3])
b=a.copy()
print(np.hstack((a,b)))
[1 2 3 1 2 3]
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
b=a.copy()
print(np.hstack((a,b)))

[[1 2 3 1 2 3]
 [4 5 6 4 5 6]]
import numpy as np
a=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
b=a.copy()
print(np.hstack((a,b)))

[[[ 1  2  3]
  [ 4  5  6]
  [ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]
  [ 7  8  9]
  [10 11 12]]]

对于一维及二维数组,我们可以看到,hstack()函数确实是常规意义上的按行连接。
但是对于三维数组,hstack()函数并没有将他们按常规意义上的行连接,
而是按其第二个维度连接。

我们不妨将它们放到坐标系中去看看,
首先,
一维数组的情况:
这里写图片描述
连接后

二维数组连接后的情况:
这里写图片描述
三维连接前的情况:
这里写图片描述
连接后(为了表现清楚,这里用不同颜色表示了z轴坐标不同的数,下面四维图同理):
这里写图片描述
从这张图里,我们可以清楚地看到它其实是按y轴连接,而非此前的x轴。

但如果我们把x轴给压没了(比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值