介紹
numpy是一個Python中常用的科學計算庫,提供了眾多的數據結構和演算法函數,其中函數vstack是其中一個極為常用的函數,在數組合併方面可以說是一個必備函數。
vstack函數主要用於垂直方向上的數組合併,將多個數組按照垂直方向堆疊。該函數可以接受兩個或多個相同形狀的數組作為參數,並返回一個具有相同形狀的新數組。
在進行多個數組處理時,我們通常需要將不同的數據按照一定的方式進行組合,以達到更好地分析數據的目的。vstack函數的使用正是為了此目的而生,我們可以將多個數組堆疊在一起,將數據按照垂直方向進行組合,整理出更為清晰的數據結構。
詳細闡述
1. 基本使用
在介紹vstack函數的具體用法之前,我們先草擬一個demo,以方便後續更好地理解函數的具體用法。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))
print(c)
運行代碼後,我們得到了如下輸出:
[[1 2 3]
[4 5 6]]
代碼運行結果證明,vstack函數將數組a和數組b按照垂直方向進行堆疊,最終返回了一個包含兩個數組的新數組。
2. 多數組組合
vstack函數支持兩個或多個數組的組合,同時也支持List列表的形式,具體圖示如下:
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.array([7,8,9])
d = np.vstack((a,b,c))
print(d)
運行代碼後,我們得到了如下輸出:
[[1 2 3]
[4 5 6]
[7 8 9]]
從輸出結果看,數組a、b、c在垂直方向上傳輸,最終被組合成一個數組。
3. 矩陣的組合
除了數組的組合外,vstack函數還支持矩陣的重組,實例如下:
import numpy as np
a = np.matrix([[1,2],[3,4]])
b = np.matrix([[5,6],[7,8]])
c = np.vstack((a,b))
print(c)
運行代碼後,我們得到了如下輸出:
[[1 2]
[3 4]
[5 6]
[7 8]]
代碼運行結果證明,vstack函數通過將矩陣a和矩陣b在垂直方向進行堆疊,成功組合成一個新的矩陣。
4. 使用hstack進行水平方向組合
除了vstack函數,numpy庫中還提供了hstack函數,用於在水平方向上合併多個數組,與vstack相對應。hstack的操作基本與vstack一致,只不過方向不同。
下面是hstack函數的簡單運用,我們藉此來熟悉一下該函數的具體用法。
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([7, 8, 9])
d = np.hstack((a, b, c))
print(d)
運行以上代碼,我們可以得到如下輸出結果:
[1 2 3 4 5 6 7 8 9]
這部分代碼主要介紹了hstack函數,可以看到其作用與vstack函數十分類似,主要區別在於函數操作的方向不同。
5. 對任意類型的數組進行組合
numpy庫中的vstack函數不僅支持以列表或元組的形式進行數組組合,同時還支持數組的組合,即對不同類型的數組進行組合。這裡提供一個基於vstack函數的示例,演示數組的組合操作。
import numpy as np
a = np.array([1, 2, 3])
b = np.array(['a', 'b', 'c'])
c = np.array([4.0, 5.0, 6.0])
d = np.vstack((a, b, c))
print(d)
代碼結果如下:
[['1' '2' '3']
['a' 'b' 'c']
['4.0' '5.0' '6.0']]
從輸出結果來看,我們第一個小數組a由整型為1,2,3三個元素組成,第二個小數組b由字元型為a,b,c三個元素組成,第三個小數組c由浮點型為4.0,5.0,6.0三個元素組成。在運行vstack函數時,數組根據它們的數據類型進行了堆疊。
總結
vstack函數是numpy庫中一個常用、十分重要的函數,它能幫助我們將不同的數據進行組合,將數組按照垂直方向進行堆疊,使數據更加合理、易於分析,節約了數據處理過程中的時間和精力。
本文從基礎用法、多數組組合、矩陣的組合、水平方向組合以及任意類型的組合等多個方面對vstack函數進行了詳細的闡述。讀者通過學習本文可深入了解vstack函數,將其應用到自己的實際開發工作中。
原創文章,作者:JCXD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142118.html