vstack、hstack和dstack都用于把几个小数组合并成一个大数组。它们的差别是小数组的元素在大数组中的排列顺序有所不同。把两部手机摆到一起有几种方式?水平的左右排列,垂直的上下排列,还可以把手机一扣在手机二的顶上,把它们摞起来。这三种排列方式体现了vstack、hstack和dstack在合并数组时的特点。

一、vstack

vstack实现了轴0合并。vstack的字母v表示vertical的意思,提示用户把它想象成垂直合并。观察一维和二维数组的情况,b在结果中被排在a的后面,形成a在上,b在下的垂直关系。

import numpy as np
a = [,]
b = [,]
c = np.vstack((a,b))
print(c)
a = [[,]]
b = [[,]]
c = np.vstack((a,b))
print(c)
'''
[[ ]
[ ]]
[[ ]
[ ]]
'''

显然,a被存到c[0]中,b被存到c[1]中,a、b二者在0号轴上连接起来。对于两个高维数组a、b来说,vstack在合并a、b时已全无垂直或上下这样直观的位置关系,但a、b仍旧保持在0号轴上a在前2层,b在后2层的位置关系。程序中np.sum(c[2:]-b)等于0表示c[2:]和b拥有同样的元素,np.sum(c[:2]-a)等于0表示c[:2]与a有同样的元素。想想c有什么样的形状?答曰(4,3,4,5)。

a = np.arange().reshape(,,,)
b = np.arange(,).reshape(,,,)
size = a.shape[]
print(np.sum(c[:]-a))
print(np.sum(c[:]-b))
#
#

二、hstack

hstack表示轴1合并。hstack的字母h来自于horizontal,表示两个数组是水平的,hstack((a,b))将把b排在a的右边的意思。

print(np.hstack([[,],[]]))
# [,,]

现在没有增维,结果不像vstack,对一维数组合并的结果还是一维的。

a = [[,],
[,]]
b = [[],
[]]
print(np.hstack([a,b]))
# [[ ]
# [ ]]

在结果c中,b就在a的右边。它表明c中b元素的1轴坐标会大于a元素的1轴坐标。对于高维数组而言,如下例所示,a的a[:0]、a[:1]、a[:,2],构成c的c[:,0]、c[:,1]、c[:,2],b的[:,0]构成c的c[:4]。a、b在1号轴坐标上被连接起来。

a = np.arange().reshape(,,,)
b = np.arange(,).reshape(,,,)
size = a.shape[]
c = np.hstack([a,b])
print(np.sum(c[:,:size]-a))
print(np.sum(c[:,size:]-b))
#
#

numpy函数hstack,vstack,dstack简介的更多相关文章

  1. [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()

    Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...

  2. Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()

    感觉numpy.hstack()和numpy.column_stack()函数略有相似,numpy.vstack()与numpy.row_stack()函数也是挺像的. stackoverflow上也 ...

  3. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏 ...

  4. Numpy函数库基础

    利用Numpy函数库构造4*4随机数组,然后将数组转化为矩阵,然后矩阵与其逆矩阵相乘,计算机处理的误差 from numpy import * random.rand(4,4) print(rando ...

  5. Numpy 函数总结 (不断更新)

    本篇主要收集一些平时见到的 Numpy 函数. numpy.random.seed & numpy.random.RandomState np.random.seed() 和 np.rando ...

  6. numpy函数库中一些经常使用函数的记录

    ##numpy函数库中一些经常使用函数的记录 近期才開始接触python,python中为我们提供了大量的库,不太熟悉.因此在<机器学习实战>的学习中,对遇到的一些函数的使用方法进行记录. ...

  7. numpy函数库中一些常用函数的记录

    ##numpy函数库中一些常用函数的记录 最近才开始接触Python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1) ...

  8. numpy函数笔记(持续更新)

    numpy函数笔记 np.isin用法 np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状和a一模一样的数组.(注意:这里的a ...

  9. Numpy:np.vstack()&np.hstack() flat/flatten

    一 .  np.vstack: 按垂直方向(行顺序)堆叠数组构成一个新的数组 In[3]: import numpy as np In[4]: a = np.array([[1,2,3]]) a.sh ...

随机推荐

  1. JavaScript的流程控制

    JavaScript的流程控制 1.if...else if...else... 2.while 3.for 4.forEach 5.for...in... 完整代码如下: <!DOCTYPE ...

  2. Selenium(Webdriver)自动化测试常问问题

    http://blog.sina.com.cn/s/blog_c189e2590102w3bv.html Selenium(Webdriver)自动化测试常问问题 (1)selenium中如何保证操作 ...

  3. 解决报错Failed to start LSB: Bring up/down networking:MAC地址导致

    1.场景描述,我在电脑里装好的虚拟机,今天突然就网络无法打开,并出现如下报错: [root@ansible-control ~]# systemctl start networkJob for net ...

  4. RESTful 【个人理解总结】

    RESTful 个人理解总结 一.什么是  RESTful 面向资源 简单的说:RESTful是一种架构的规范与约束.原则,符合这种规范的架构就是RESTful架构. 先看REST是什么意思,英文Re ...

  5. python使用临时文件

    # 需求 # 某项目中,我们从传感器中采集数据,没采集1G数据后,做数据分析,最终只保存分析结果 # 这样很大的临时文件如果常驻在内存,将消耗大量地内存资源,我们可以使用临时文件储存(外部储存) # ...

  6. spring(五):AOP

    AOP(Aspect Oriented Programming) 面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行OOP开发时,都是基于对组件(比如 ...

  7. AcWing 793. 高精度乘法

    https://www.acwing.com/problem/content/795/ #include<bits/stdc++.h> using namespace std; //A*b ...

  8. bzoj 3669: [Noi2014]魔法森林 (LCT & kruskal)

    这道题呢, 首先按照关键字a排序,然后不断地加边,用lct维护这个过程 具体实现: 先按照关键字a排序,枚举每一条边,判断两点是否已经联通(kruskal 部分)如果联通,就在两点路径间寻找最大的b, ...

  9. 题解【洛谷P5248】 [LnOI2019SP]快速多项式变换(FPT)

    题目描述 这是一道构造题. 诗乃在心中想了一个n+1项的多项式f(x).第i项的次数为i,系数为ai: f(x)=a0​+a1​*x+a2​*x2+a3​*x3+⋯+an*​xn 给定m以及f(m)的 ...

  10. ansible playbook详解

    ansible playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml基础语法 语法 描述 缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs键 ...