Python之numpy中vstack和hstack函数的案例分析
创始人
2024-11-18 08:41:53
0次

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。

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)))

上面程序的输出:

[[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]]

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

  • vstack:按索引取出每个元素,“并排”放入新的数组。如[ 1 , 2 ] [1,2][1,2]和[ 3 , 4 ] [3,4][3,4],就会变成

[1,2]

[3,4]

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

  • hstack:按索引取出每个元素,“合并”放入新的数组。

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

[1,2,3,4]

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

需要特别注意的是

np.hstack((ls1, ls2))

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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...