日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python之numpy中vstack和hstack函数的案例分析

發布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python之numpy中vstack和hstack函数的案例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小編給大家分享一下Python之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。

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

總結

以上是生活随笔為你收集整理的Python之numpy中vstack和hstack函数的案例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。