在这里我们介绍两个拼接数组的方法:

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()相关推荐

  1. Numpy 中 np.vstack() 和 np.hstack() 简单解析

    文章目录 一.np.vstack() 二.np.hstack() 一.np.vstack() 按垂直方向(行顺序)堆叠数组构成一个新的数组 堆叠的数组需要具有相同的维度 二.np.hstack() 按 ...

  2. np.vstack与np.newaxis的含义

    np.vstack 把两个数组按列拼接,也相当于堆叠了起来 import numpy as nparr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6] ...

  3. np.vstack()函数

    np.vstack函数 调用方法 示例1 调用方法 该函数的调用方法: numpy.vstack(tup) 各个参数意义: tup:输入的参数应该为一个元组,即 (tuple) 对象. 有返回值,返回 ...

  4. np.vstack(tup)使用

    沿着竖直方向将矩阵堆叠起来. Note: the arrays must have the same shape along all but the first axis. 除开第一维外,被堆叠的矩阵 ...

  5. 【Numpy 学习记录】np.stack 和 np.concatenate

    np.stack 和 np.concatenate两个函数都是用来连接数组的, 但是他们之间还是有一些探讨之处,直接上代码,一看便知: import numpy as npa = np.zeros(1 ...

  6. 数组连接中的vstack()函数与hstack()函数

    目录 vstack()函数与hatack()函数 数组类型为一维数组时 数组类型为二维数组时 两个相连接的数组类型大小不一致时 vstack()函数与hatack()函数 vstack()函数能够在垂 ...

  7. 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( ...

  8. 神器np.unique、np.argsort

    文章目录 np.unique np.argsort 本文介绍一些比较少用,但是强大的功能. import numpy as np np.unique 我说得这个不常用指的是后面的一个参数,去重本身是常 ...

  9. numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

    numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray) 原创  2017年02月18日 10:35:43

最新文章

  1. Cisco HSRP热备份路由器协议配置
  2. docker开源系统监控软件Nagios
  3. css : 使用浮动实现左右各放一个元素时很容易犯的错误
  4. 基于node.js+MongoDB+elementui的分页接口以及页面实现
  5. 表格锁定表头不动_Excel教程:你有没有被表头难过?分享几招搞定(下)
  6. PHP包管理器PEAR 中爆多个缺陷可发动供应链攻击,已潜伏15年
  7. iOS利用OpenCV 实现文字行区域提取的尝试
  8. LabView常用快捷键
  9. Android 颜色渲染(三) Shader颜色渲染
  10. The Forty-ninth Of Word-Day
  11. 【Gsutil】使用手册
  12. 网络机顶盒服务器响应超时怎么办,教你如何处理网络机顶盒常见问题
  13. Ubuntu系统中如何删除一个用户
  14. 961 计算机学科专业基础综合,2018年北京航空航天大学961计算机学科专业基础综合考研复习资料...
  15. android m是什么版本号,Android M版本号确定,并不是Android 6.0
  16. 程序员的忧桑:有人向你反馈了一个Bug!
  17. 原理图库:元器件引脚命名如何输出上划线
  18. Nginx启动不了报错未找到命令的解决方法(- bash: nginx: 未找到命令)
  19. 根据分割符分割字符串成数组
  20. 安卓防止手机休眠软件_Caffeinate app下载-手机防休眠工具Caffeinate下载v3.3.3 安卓版-西西软件下载...

热门文章

  1. php soap模块的安装
  2. 版权和许可协议的学习
  3. 京东Flink优化与技术实践
  4. 程序员吐槽:在阿里工作带来光环,在京东却带来负面影响!
  5. 百亿级日志系统架构设计及优化
  6. 数字化绩效管理解决方案,评估周期缩短80%,成本下降60%
  7. 如何进行高效的时间管理?
  8. 通过Soul看微内核架构(二)
  9. 每一次宕机都是新的开始
  10. OKR怎么使用比较好?