亲宝软件园·资讯

展开

np.dstack()、np.hstack()、np.vstack()

Dream丶Killer 人气:2

在写代码时,经常会遇到多个矩阵数组拼接的情况,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]]

加载全部内容

相关教程
猜你喜欢
用户评论