np.vstack()和np.hstack()
在这里我们介绍两个拼接数组的方法:
np.vstack():在竖直方向上堆叠
np.hstack():在水平方向上平铺
import numpy as np
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
print np.vstack((arr1,arr2))print np.hstack((arr1,arr2))a1=np.array([[1,2],[3,4],[5,6]])
a2=np.array([[7,8],[9,10],[11,12]])
print a1
print a2
print np.hstack((a1,a2))
结果如下:
[[1 2 3][4 5 6]]
[1 2 3 4 5 6]
[[1 2][3 4][5 6]]
[[ 7 8][ 9 10][11 12]]
[[ 1 2 7 8][ 3 4 9 10][ 5 6 11 12]]
这里还需要强调一点,在hstack应用的时候,我在做cs231n上的assignment1的时候,我总是在hstack这里出错!才发现我以前学的很肤浅啊!
(1)np.hstack()
函数原型:numpy.hstack(tup)
其中tup是arrays序列,tup : sequence of ndarrays
The arrays must have the same shape along all but the second axis,except 1-D arrays which can be any length.
等价于:np.concatenate(tup, axis=1)
例子一:
import numpy as np
brr1=np.array([1,2,3,4,55,6,7,77,8,9,99])
brr1_folds=np.array_split(brr1,3)
print brr1_folds
print brr1_folds[0:2]+brr1_folds[1:3]
print np.hstack((brr1_folds[:2]+brr1_folds[1:3]))
print brr1_folds[0:2]
print brr1_folds[1:3]
#print np.hstack((brr1_folds[0:2],brr1_folds[1:3]))
最后一行如果不注释掉就会出错;
[array([1, 2, 3, 4]), array([55, 6, 7, 77]), array([ 8, 9, 99])]
[array([1, 2, 3, 4]), array([55, 6, 7, 77]), array([55, 6, 7, 77]), array([ 8, 9, 99])]
[ 1 2 3 4 55 6 7 77 55 6 7 77 8 9 99]
[array([1, 2, 3, 4]), array([55, 6, 7, 77])]
[array([55, 6, 7, 77]), array([ 8, 9, 99])]
错误的原因就是以为我的array的维度不一致。改成+就好啦,加号是list的拼接!
例子二:
print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
结果是:表明了一维的数组hstack是随意的。
[1 2 3 3 4 3 4 5 8 6 6 7]
例子三:
表明我们的hstack必须要第二维度是一样的:
print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2],[2,3]]))
结果:
[1 2 3 3 4 3 4 5 8 6 6 7]
[[1 2 3 1 2][2 3 4 2 3]]
如果你把上面改成下面就会报错了!!!
print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2]]))
(2)np.vstack()
函数原型:numpy.hstack(tup)
tup : sequence of ndarrays
The arrays must have the same shape along all but the first axis.1-D arrays must have the same length.
表示我们除了第一维可以不一样外,其他的维度上必须相同的shape。一维的数组必须大小一样。
例子一:
print np.vstack(([1,2,3],[3,4,3]))
print np.vstack(([1,2,3],[2,3]))
但是你要注意的是第二行是出错的!
例子二:
print np.vstack(([[1,2,3],[3,4,3]],[[1,3,4],[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[3,4],[4,5]]))
同样的表明了,如果我们的数组的第二维不一样所以出错了。
print np.vstack(([[1,2,3],[3,4,3]],[[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[4,5]]))
例子三:
我们传入的是list:
import numpy as np
arr1=np.array([[1,2],[2,4],[11,33],[2,44],[55,77],[11,22],[55,67],[67,89]])
arr11=np.array([[11,2,3],[22,3,4],[4,5,6]])
arr1_folds=np.array_split(arr1,3)
print arr1_folds
print np.vstack(arr1_folds)
结果:
[array([[ 1, 2],[ 2, 4],[11, 33]]), array([[ 2, 44],[55, 77],[11, 22]]), array([[55, 67],[67, 89]])]
[[ 1 2][ 2 4][11 33][ 2 44][55 77][11 22][55 67][67 89]]
np.vstack()和np.hstack()相关推荐
- Numpy 中 np.vstack() 和 np.hstack() 简单解析
文章目录 一.np.vstack() 二.np.hstack() 一.np.vstack() 按垂直方向(行顺序)堆叠数组构成一个新的数组 堆叠的数组需要具有相同的维度 二.np.hstack() 按 ...
- np.vstack与np.newaxis的含义
np.vstack 把两个数组按列拼接,也相当于堆叠了起来 import numpy as nparr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6] ...
- np.vstack()函数
np.vstack函数 调用方法 示例1 调用方法 该函数的调用方法: numpy.vstack(tup) 各个参数意义: tup:输入的参数应该为一个元组,即 (tuple) 对象. 有返回值,返回 ...
- np.vstack(tup)使用
沿着竖直方向将矩阵堆叠起来. Note: the arrays must have the same shape along all but the first axis. 除开第一维外,被堆叠的矩阵 ...
- 【Numpy 学习记录】np.stack 和 np.concatenate
np.stack 和 np.concatenate两个函数都是用来连接数组的, 但是他们之间还是有一些探讨之处,直接上代码,一看便知: import numpy as npa = np.zeros(1 ...
- 数组连接中的vstack()函数与hstack()函数
目录 vstack()函数与hatack()函数 数组类型为一维数组时 数组类型为二维数组时 两个相连接的数组类型大小不一致时 vstack()函数与hatack()函数 vstack()函数能够在垂 ...
- np.asarray和np.array、np.nanmean和np.mean、np.diff、
文章目录 np.asarray和np.array np.nanmean和np.mean np.diff import numpy as np np.asarray和np.array np.array( ...
- 神器np.unique、np.argsort
文章目录 np.unique np.argsort 本文介绍一些比较少用,但是强大的功能. import numpy as np np.unique 我说得这个不常用指的是后面的一个参数,去重本身是常 ...
- numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)
numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray) 原创 2017年02月18日 10:35:43
最新文章
- Cisco HSRP热备份路由器协议配置
- docker开源系统监控软件Nagios
- css : 使用浮动实现左右各放一个元素时很容易犯的错误
- 基于node.js+MongoDB+elementui的分页接口以及页面实现
- 表格锁定表头不动_Excel教程:你有没有被表头难过?分享几招搞定(下)
- PHP包管理器PEAR 中爆多个缺陷可发动供应链攻击,已潜伏15年
- iOS利用OpenCV 实现文字行区域提取的尝试
- LabView常用快捷键
- Android 颜色渲染(三) Shader颜色渲染
- The Forty-ninth Of Word-Day
- 【Gsutil】使用手册
- 网络机顶盒服务器响应超时怎么办,教你如何处理网络机顶盒常见问题
- Ubuntu系统中如何删除一个用户
- 961 计算机学科专业基础综合,2018年北京航空航天大学961计算机学科专业基础综合考研复习资料...
- android m是什么版本号,Android M版本号确定,并不是Android 6.0
- 程序员的忧桑:有人向你反馈了一个Bug!
- 原理图库:元器件引脚命名如何输出上划线
- Nginx启动不了报错未找到命令的解决方法(- bash: nginx: 未找到命令)
- 根据分割符分割字符串成数组
- 安卓防止手机休眠软件_Caffeinate app下载-手机防休眠工具Caffeinate下载v3.3.3 安卓版-西西软件下载...