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

目录
  • 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()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • numpy数组做图片拼接的实现(concatenate、vstack、hstack)

    两种方法拼接 #img = np.vstack((img, img2)) # vstack按垂直方向,hstack按水平方向 img = np.concatenate((img, img2), axis=0) # axis=0 按垂直方向,axis=1 按水平方向 统一图片大小,保证数组维度一致避免拼接失败. 把图片全部调整成第一张图的宽高 def img_size(image_names,width, height): for i in image_names: img = cv2.imrea

  • Numpy中stack(),hstack(),vstack()函数用法介绍及实例

    1.stack()函数 函数原型为:stack(arrays,axis=0),arrays可以传数组和列表.axis的含义我下面会讲解,我们先来看个例子,然后我会分析输出结果. import numpy as np a=[[1,2,3], [4,5,6]] print("列表a如下:") print(a) print("增加一维,新维度的下标为0") c=np.stack(a,axis=0) print(c) print("增加一维,新维度的下标为1&qu

  • 详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)

    Numpy中提供了concatenate,append, stack类(包括hsatck.vstack.dstack.row_stack.column_stack),r_和c_等类和函数用于数组拼接的操作. 各种函数的特点和区别如下标: concatenate 提供了axis参数,用于指定拼接方向 append 默认先ravel再拼接成一维数组,也可指定axis stack 提供了axis参数,用于生成新的维度 hstack 水平拼接,沿着行的方向,对列进行拼接 vstack 垂直拼接,沿着列的

  • Python numpy中矩阵的基本用法汇总

    Python矩阵的基本用法 mat()函数将目标数据的类型转化成矩阵(matrix) 1,mat()函数和array()函数的区别 Numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素,虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中Numpy函数库中的matrix与MATLAB中matrices等价. 直接看一个例子: import numpy as np a = np.mat('1 3;5 7')

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

    目录 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

  • numpy中数组拼接、数组合并方法总结(append(), concatenate, hstack, vstack, column_stack, row_stack, np.r_, np.c_等)

    目录 零. 维度和轴 一.append() 二.concatenate 三.hstack, vstack 四.column_stack, row_stack 五. np.r_, np.c_ 六.总结 参考 总结 零. 维度和轴 Python中可以用numpy中的ndim和shape来分别查看维度,以及在对应维度上的长度.直观上可以根据符号“[ ]”的层数来判断,有m层即为m维,最外面1层对应axis0, 依次为axis1,axis2… c = np.array([[[1,2,3], [4,5,6

  • 关于numpy中np.nonzero()函数用法的详解

    np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数.一般来说,通过help(np.nonzero)能够查看到该函数的解析与例程.但是,由于例程为英文缩写,阅读起来还是很费劲,因此,本文将其英文解释翻译成中文,便于理解. 解释 nonzero(a) 返回数组a中非零元素的索引值数组. (1)只有a中非零元素才会有索引值,那些零值元素没有索引值: (2)返回的索引值数组是一个2维tuple数组,该tuple数组中包含一维的array数组.其中,一维arra

  • 浅谈numpy中np.array()与np.asarray的区别以及.tolist

    array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会. 1.输入为列表时 a=[[1,2,3],[4,5,6],[7,8,9]] b=np.array(a) c=np.asarray(a) a[2]=1 print(a) print(b) print(c) 从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式.当输入是列表的时候,更改

  • Numpy中np.random.rand()和np.random.randn() 用法和区别详解

    numpy.random.rand(d0, d1, -, dn)的随机样本位于[0, 1)中:本函数可以返回一个或一组服从**"0~1"均匀分布**的随机样本值. numpy.random.randn(d0, d1, -, dn)是从标准正态分布中返回一个或多个样本值. 1. np.random.rand() 语法: np.random.rand(d0,d1,d2--dn) 注:使用方法与np.random.randn()函数相同 作用: 通过本函数可以返回一个或一组服从"0

  • Numpy中np.max的用法及np.maximum区别

    Numpy中np.max(即np.amax)的用法 >>> import numpy as np >>> help(np.max) 当遇到一个不认识的函数,我们就需要查看一下帮助文档 np.max与np.amax是同名函数 amax(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>) Return the maximum

  • Numpy中的数组搜索中np.where方法详细介绍

    numpy.where (condition[, x, y]) numpy.where() 有两种用法: 1. np.where(condition, x, y) 满足条件(condition),输出x,不满足输出y. 如果是一维数组,相当于[xv if c else yv for (c,xv,yv) in zip(condition,x,y)] >>> aa = np.arange(10) >>> np.where(aa,1,-1) array([-1, 1, 1,

  • python3 numpy中数组相乘np.dot(a,b)运算的规则说明

    python np.dot(a,b)运算规则解析 首先我们知道dot运算时不满足交换律的,np.dot(a, b)与np.dot(b, a)是不一样的 另外np.dot(a,b)和a.dot(b)果是一样的 1.numpy中数组相乘np.dot(a,b)运算条件: 对于两数组a和b : 示例一: a = np.array([[3], [3], [3]]) # (3,1) b = np.array([2, 2, 1]) # (3,) print(a, "\na的shape", a.sha

  • numpy中np.nanmax和np.max的区别及坑

    目录 np.nanmax和np.array([1,2,3,np.nan]).max()的区别 原理 速度区别 numpy中nan和常用方法 np.nanmax和np.array([1,2,3,np.nan]).max()的区别 numpy中numpy.nanmax的官方文档 原理 在计算dataframe最大值时,最先用到的一定是Series对象的max()方法(),最终结果是4. s1 = pd.Series([1,2,3,4,np.nan]) s1_max = s1.max() 但是笔者由于

随机推荐