numpy.dstack详解

numpy.dstack

  • 用例:
    numpy.dstack(tup)

  • 功能:
    将列表中的数组沿深度方向进行拼接。
    当数组为2维数组(M,N)或1维数组(N,)时,首先分别将其维度改变为(M,N,1)(1,N,1),然后沿着第三根轴进行拼接。使用函数dsplit可以将数组沿深度方向进行分隔。
    这个函数适用于3维数组,例如图像数据有高(第一根轴),宽(第二根轴),和r/g/b通道(第三根轴)。concatenatestackblock这三个函数为数组的堆叠以及拼接提供了更多选项。
    让我们先观察一下数组拼接的三个方向:

# 绘制多维数组拼接以及分割的三个轴方向,first axis为竖直方向,second axis为水平方向,third axis为深度方向
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure() 
ax = plt.axes(projection='3d')
x = [0, 0]
y = [0, 0]
z = [0, 1]
ax.plot(x, y, z, label='first axis', linewidth=5)
x = [0, 1]
y = [0, 0]
z = [0, 0]
ax.plot(x, y, z, label='second axis', linewidth=5)
x = [0, 0]
y = [0, 1]
z = [0, 0]
ax.plot(x, y, z, label='third axis', linewidth=5)
ax.legend()

numpy.dstack详解_第1张图片

  • 参数
变量名 数据类型 功能
tup 数组组成的列表 数组的长宽必须保持一致
  • 返回值
变量名 数据类型 功能
stacked n维数组 将给定数组拼接形成的3维以上的数组
  • 示例:
import numpy as np
a = np.array((1,2,3))
b = np.array((2,3,4))
np.dstack((a,b))

[[[1, 2],
[2, 3],
[3, 4]]]


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

[[[1, 2]],
[[2, 3]],
[[3, 4]]]


github链接
https://github.com/wzy6642/numpy-translate

你可能感兴趣的:(numpy)