python中numpy的stack、vstack、hstack、concatenate、

本文详细解析了Python numpy库中的堆叠和拼接函数,包括np.stack、np.concatenate、np.hstack、np.vstack和np.dstack。通过实例演示,阐述了这些函数如何按照不同维度进行数组的组合,帮助理解axis参数的作用。还提到了np.column_stack和np.row_stack在处理一维数组时的用途。
摘要由CSDN通过智能技术生成

在python的numpy库中有一个函数np.stack(), 看过一些博文后觉得别人写的太复杂,然后自己有了一些理解之后做了一些比较简单的解释


np.stack

首先stack函数用于堆叠数组,其调用方式如下所示:

np.stack(arrays,axis=0)

其中arrays即需要进行堆叠的数组,axis是堆叠时使用的轴,比如:

arrays = [[1,2,3,4], [5,6,7,8]]

这是一个二维数组,axis=0表示的是第一维,也即是arrays[0] = [1,2,3,4]或者arrays[1] = [5,6,7,8]

axis=i时,代表在堆叠时首先选取第i维进行“打包”


具体例子:

当执行np.stack(arrays, axis=0)时,取出第一维的1、2、3、4,打包,[1, 2, 3, 4],其余的类似,然后结果如下:

>>> arrays = [[1,2,3,4], [5,6,7,8]]
>>> arrays=np.array(arrays)
>>> np.stack(arrays,axis=0)
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

当执行np.stack(arrays, axis=1)时,先对arrays中的第二维进行“打包”,也即是将1、5打包成[1, 5],其余的类似,结果如下:

>>> np.stack(arrays, axis=1)
array([[1, 5],
       [2, 6],
       [3, 7],
       [4, 8]])


有这个“打包”的概念后,对于三维的数组堆叠也不难理解了,例如:

a = np.array([[1,2,3,4], [5,6,7,8]])

arrays = np.asarray([a, a , a])

>>> arrays
array([[[1, 2, 3, 4],
        [5, 6, 7, 8]],

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

       [[1, 2, 3, 4],
        [5, 6, 7, 8]]])

执行np.stack(arrays, axis=0),也就是对第一维进行打包,结果如下:

>>> np.stack(arrays, axis=0)
array([[[1, 2, 3, 4],
        [5, 6, 7, 8]],

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

       [[1, 2, 
  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python,我们可以使用NumPy来进行数组拼接。NumPy提供了多种方法来进行数组的拼接,包括append、concatenate、stack、hstackvstack等方法。其,append方法可以用来将一个数组或一个数值追加到另一个数组的末尾,返回的结果始终是一个一维数组。concatenate方法可以在指定的轴上连接两个或多个数组,返回的结果可以是一维或多维数组。stack方法可以将多个数组沿着新的轴堆叠起来,返回的结果是一个新的多维数组。hstack方法可以水平堆叠两个数组,即将两个数组的列连接起来,返回的结果是一个新的二维数组。vstack方法可以垂直堆叠两个数组,即将两个数组的行连接起来,返回的结果是一个新的二维数组。总结起来,NumPy提供了多种灵活的方法来进行数组的拼接操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python里面数组拼接方法介绍](https://blog.csdn.net/shixin_0125/article/details/105829497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Numpy 拼接数组的各种方式](https://blog.csdn.net/XnCSD/article/details/105880658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值