numpy中np.dstack()、np.hstack()、np.vstack()用法

在寫代碼時,經常會遇到多個矩陣數組拼接的情況,numpy裡dstack, hstack, vstack, 都有拼接的作用,那麼這些函數是怎麼執行的,他們的結果又如何呢?

np.dstack()

按深度順序堆疊arrays。當數組為2維數組(M,N)或1維數組(N,)時,首先分別將其維度改變為(M,N,1)、(1,N,1),然後沿著第三根軸(r/g/b通道)進行拼接。
栗子:

# 一維
a = np.array([1, 2])
b = np.array([3, 4])
print(np.dstack((a,b)))

# 二維
a = np.array([[1, 1],
              [2, 2],
              [3, 3]])
b = np.array([[4, 4],
              [5, 5],
              [6, 6]])
print(np.dstack((a,b)))

# 運行結果
[[[1 3]
  [2 4]]]
  
[[[1 4]
  [1 4]]
 [[2 5]
  [2 5]]
 [[3 6]
  [3 6]]]

np.hstack()

水平方向(列)順序堆疊arrays。
栗子:

import numpy as np

# 一維
a = np.array([1, 2])
b = np.array([3, 4])
print(np.hstack((a,b)))

# 二維
a = np.array([[1, 1],
              [2, 2],
              [3, 3]])
b = np.array([[4, 4],
              [5, 5],
              [6, 6]])
print(np.hstack((a,b)))

# 運行結果
[1 2 3 4]

[[1 1 4 4]
 [2 2 5 5]
 [3 3 6 6]]

np.vstack()

垂直方向(行)順序堆疊arrays。
栗子:

# 一維
a = np.array([1, 2])
b = np.array([3, 4])
print(np.vstack((a,b)))

# 二維
a = np.array([[1, 1],
              [2, 2],
              [3, 3]])
b = np.array([[4, 4],
              [5, 5],
              [6, 6]])
print(np.vstack((a,b)))

# 運行結果
[[1 2]
 [3 4]]
 
[[1 1]
 [2 2]
 [3 3]
 [4 4]
 [5 5]
 [6 6]]

到此這篇關於numpy中np.dstack()、np.hstack()、np.vstack()用法的文章就介紹到這瞭,更多相關np.dstack()、np.hstack()、np.vstack()內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: