溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python之numpy中vstack和hstack函數(shù)的案例分析

發(fā)布時間:2020-11-04 09:26:17 來源:億速云 閱讀:468 作者:小新 欄目:編程語言

小編給大家分享一下Python之numpy中vstack和hstack函數(shù)的案例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

vstack和hstack都是numpy中用于合并兩個小數(shù)組的函數(shù)。他們倆不僅名字很像,用法也很像,所以很容易搞混。首先需要明確幾個共性:

1.兩個函數(shù)都只接收一個參數(shù):vstack(tup)和hstack(tup)。但是,正如前面說到的,這兩個函數(shù)是用于合并兩個數(shù)組的,所以我們需要傳遞兩個數(shù)組。于是vstack和hstack接收一個元組,這個元組有兩個元素,分別是需要操作的兩個數(shù)組。

用法如vstack((list1, list2))。注意是兩個括號。

2.在使用vstack時,要求“行數(shù)”一致(即第一維大小相等);使用hstack時,要求“列數(shù)”,否則有error。

3.輸入兩個數(shù)組如果是一維的(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]]

乍一看可能不好理解,一維數(shù)組和多維數(shù)組的處理方式并不相同。但是從上面的程序我們不難發(fā)現(xiàn),我們只需要將一維的數(shù)組升維到二維,就可以將兩種處理方式統(tǒng)一:可以將數(shù)組都看成“二維”,只不過高維數(shù)組的元素仍是數(shù)組。

  • vstack:按索引取出每個元素,“并排”放入新的數(shù)組。如[ 1 , 2 ] [1,2][1,2][ 3 , 4 ] [3,4][3,4],就會變成

[1,2]

[3,4]

當(dāng)然,在數(shù)組中會以逗號分隔

  • hstack:按索引取出每個元素,“合并”放入新的數(shù)組。

[ 1 , 2 ] [1,2][1,2][ 3 , 4 ] [3,4][3,4],就會變成

[1,2,3,4]

當(dāng)然,在數(shù)組中會以逗號分隔

需要特別注意的是

np.hstack((ls1, ls2))

這一個,在升維得到結(jié)果后,如果仍是(1,N)維的,就變回(N)維。

以上是Python之numpy中vstack和hstack函數(shù)的案例分析的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI