• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python基础:numpy中vstack和hstack函数

python 搞java代码 3年前 (2022-05-21) 31次浏览 已收录 0个评论

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

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。


<p style="line-height: 1.75em"><span>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>

www#gaodaima.com来源gaodaimacom搞#^代%!码网搞代码


面程序的输出:


<p style="line-height: 1.75em"><span>[[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>


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

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

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

需要特别注意的是


<p style="line-height: 1.75em"><span>np.hstack((ls1, ls2))<br></span></p>


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

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

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python基础:numpy中vstack和hstack函数
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址