• 技术文章 >Python技术 >Python基础教程

    Python基础:numpy中vstack和hstack函数

    2020-11-03 15:52:09原创10340

    今天小编就numpy中vstack和hstack两个函数问题为大家进行讲解。

    vstack和hstack都是numpy中用于合并两个小数组的函数。他们俩不仅名字很像,用法也很像,所以很容易搞混。首先需要明确几个共性:

    1.两个函数都只接收一个参数:vstack(tup)和hstack(tup)。但是,正如前面说到的,这两个函数是用于合并两个数组的,所以我们需要传递两个数组。于是vstack和hstack接收一个元组,这个元组有两个元素,分别是需要操作的两个数组。

    用法如vstack((list1, list2))。注意是两个括号


    2.在使用vstack时,要求“行数”一致(即第一维大小相等);使用hstack时,要求“列数”,否则有error。


    3.输入两个数组如果是一维的(N),则会先被升维(1,N)。其他维度则不做升维处理。


    再看看二者的不同之处。先从名字来理解,stack有“堆叠”的意思,而v指vertical——“垂直的”,h指horizontal——“水平的”。也就是说vstack是“垂直地堆叠”,hstack是“水平地堆叠”。


    好了,接下来通过几个例子进一步了解一下vstack和hstack。


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    <p style="line-height: 1.75em;"><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">import numpy as np

     

    if __name__ == '__main__':

        ls1 = [1,2,3]

        ls2 = [4,5,6]

        ls3 = [[1,2], [3,4]]

        ls4 = [[5,6], [7,8]]

        ls5 = [[[1],[2]], [3,4]]

        ls6 = [[[5],[6]], [7,8]]

     

        print(np.vstack((ls1, ls2)))

        print(np.hstack((ls1, ls2)))

        print(np.vstack((ls3, ls4)))

        print(np.hstack((ls3, ls4)))

        print(np.vstack((ls5, ls6)))

        print(np.hstack((ls5, ls6)))<br></span></p>


    面程序的输出:


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    <p style="line-height: 1.75em;"><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">[[1 2 3]

     [4 5 6]]

      

    [1 2 3 4 5 6]

     

    [[1 2]

     [3 4]

     [5 6]

     [7 8]]

      

    [[1 2 5 6]

     [3 4 7 8]]

      

    [[list([1]) list([2])]

     [3 4]

     [list([5]) list([6])]

     [7 8]]

      

    [[list([1]) list([2]) list([5]) list([6])]

     [3 4 7 8]]<br></span></p>


    乍一看可能不好理解,一维数组和多维数组的处理方式并不相同。但是从上面的程序我们不难发现,我们只需要将一维的数组升维到二维,就可以将两种处理方式统一:可以将数组都看成“二维”,只不过高维数组的元素仍是数组。

    [1,2]

    [3,4]

    当然,在数组中会以逗号分隔

    [ 1 , 2 ] [1,2][1,2][ 3 , 4 ] [3,4][3,4],就会变成

    [1,2,3,4]

    当然,在数组中会以逗号分隔

    需要特别注意的是


    1

    <p style="line-height: 1.75em;"><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">np.hstack((ls1, ls2))<br></span></p>


    这一个,在升维得到结果后,如果仍是(1,N)维的,就变回(N)维。


    以上就是numpy中vstack和hstack函数的详细讲解。更多Python学习推荐:PyThon学习网教学中心

    专题推荐:numpy中vstack和hstack函数;python
    上一篇:使用python time()方法 下一篇:Python中如何用numpy解决梯度下降最小值

    相关文章推荐

    • 详解Python中numpy.loadtxt()读取txt文件• Python中numpy如何生成mask图像• Python中如何使用numpy.getmask()函数• Python中numpy数组如何添加和删除元素• Python中numpy怎样按行或列提取矩阵• Python基础:numpy中空值怎样设置• Python实用之numpy中空数组的创建• Python之numpy中mask选取子集

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网