来自 《Python数据分析基础教程:Numpy 学习指南(第2版)》

下面将介绍组合数组的几种方法:

  • 水平组合
  • 垂直组合
  • 深度组合
  • 列组合
  • 行组合

0.创建两个3*3的数组

from numpy import *
a = arange(9).reshape(3,3)
print(a)
b = 2 * a
print(b)

得到结果

[[0 1 2][3 4 5][6 7 8]]
[[ 0  2  4][ 6  8 10][12 14 16]]

1.水平组合

将ndarray对象构成的元组作为参数,传给hstack函数

c = hstack((a,b))
print(c)

或者用concatenate函数实现同样的效果

c = concatenate((a,b), axis=1)
print(c)

得到结果

[[ 0  1  2  0  2  4][ 3  4  5  6  8 10][ 6  7  8 12 14 16]]

2.垂直组合

同样需要构造一个元组作为参数,只不过是传给vstack函数

c = vstack((a,b))
print(c)

或者用concatenate函数实现同样的效果,此时axis参数设置为0,这也是axis参数的默认值

c = concatenate((a,b), axis=0)
print(c)

得到结果

[[ 0  1  2][ 3  4  5][ 6  7  8][ 0  2  4][ 6  8 10][12 14 16]]

3.深度组合

将相同的元组作为参数传给dstack函数,即可完成数组的深度组合。所谓深度组合,就是将一系列数组沿着纵轴(深度)的方向进行层叠组合。举个例子,有若干张二维平面内的图像点阵数据,我们可将这些图像数据沿纵轴方向层叠在一起,这就形象地解释了什么是深度组合。

c = dstack((a,b))
print(c)

得到结果

[[[ 0  0][ 1  2][ 2  4]][[ 3  6][ 4  8][ 5 10]][[ 6 12][ 7 14][ 8 16]]]

4.列组合

column_stack函数对于一维数组将按列方向进行组合,如下所示:

oned = arange(2)
print(oned)
twice_oned = 2 * oned
print(twice_oned)
c = column_stack((oned, twice_oned))
print(c)

得到结果

[0 1]
[0 2]
[[0 0][1 2]]

对于二维数组,column_stack与hstack的效果是相同的:

[[ 0  1  2  0  2  4][ 3  4  5  6  8 10][ 6  7  8 12 14 16]]

5.行组合

对于两个一维数组,将直接层叠起来组合成一个二维数组

c = row_stack((oned, twice_oned))
print(c)

得到结果

[[0 1][0 2]]

对于二维数组,row_stack与vstack的效果相同

[[ 0  1  2][ 3  4  5][ 6  7  8][ 0  2  4][ 6  8 10][12 14 16]]

Numpy 组合数组的几种方法相关推荐

  1. 中单引号怎么转义_在JavaScript中组合字符串的4种方法

    下面是在JavaScript中组合字符串的4种方法.我最喜欢的方法是使用模板字符串.为什么?因为它更具可读性,所以没有转义引号的反斜杠,没有笨拙的空格分隔符,也没有混乱的加号操作符 . const i ...

  2. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  3. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  4. python遍历数组的两种方法及将print的内容写入文件中

    python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组 colours = ["red","green","blue"] ...

  5. 用new创建一个二维数组,有两种方法,是等价的

    //用new创建一个二维数组,有两种方法,是等价的      一:      int   (*p)[10]   =   new   int[5][10];      二:      int   **p ...

  6. 通过指针访问二维数组的三种方法

    下面总结了一下通过指针访问二维数组的三种方法,里边涉及指针.指针数组.数组指针.指向指针的指针以及二维数组的应用,愿对于大家理解和使用指针有所参考和帮助. 程序如下: #include <std ...

  7. 知识点2:js(javascript)中检测是否为数组的两种方法【翻转数组案例】

    javascript基础知识 文章目录 javascript基础知识 前言 一.翻转数组案例 二.检测数组的两种方法 1.如果传输的参数不是数组 2.instanceof 运算符 可以用来检测是否满足 ...

  8. 在JavaScript中组合字符串的4种方法

    下面是在JavaScript中组合字符串的4种方法.我最喜欢的方法是使用模板字符串.为什么?因为它更具可读性,所以没有转义引号的反斜杠,没有笨拙的空格分隔符,也没有混乱的加号操作符

  9. matlab创建三维数组的三种方法

    在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为"列",而对于三维数组的第三位则是习惯性的称为"页".在Matlab中将三 ...

最新文章

  1. android广播过滤器.*,android – BroadcastReceiver与多个过滤器或多个BroadcastReceivers?...
  2. CV之OD:计算机视觉之目标检测(Object Detection)方向的简介、使用方法、案例应用之详细攻略
  3. 沫沫金:2014最新全浏览器兼容左列固定右列自适应宽度技巧大公开
  4. php显示网卡信息,netwox显示网络配置信息
  5. eclipse mysql jndi_Java开发网 - tomcat5配置jndi的问题 (jdbc:comp is not bound in this Context)...
  6. 今日测试:javascript笔试最常见的一道题
  7. class 原生js获取父元素_JS获取节点的兄弟,父级,子级元素的方法
  8. 二维标准正态分布的matlab方程
  9. 台达a2_台达伺服ASDA-A2系列解决五轴CNC方案助力雕刻机行业换代升级
  10. 怎么更换电脑的默认浏览器?
  11. 微信公众平台深度开发JAVA版
  12. C#中的转义字符和Verbatim字符串
  13. android应用获取手机存储空间方法
  14. Vue.js学习笔记—shop-bus:实战:利用计算属性、指令等知识开发购物车
  15. 代谢组数据:QC归一化(R语言:MetNormalizer包)
  16. Apache ServiceComb社区常见问题解答问答精选(第一期)
  17. html2canvas跨域踩坑日常
  18. 针式打印机无电脑测试软件,针式打印机可以连接电脑但是不能打印啊 一点反应都没有 测试可以打出来...
  19. 编码问题(Java的IO流为什么会有字节流和字符流)
  20. Science | MIT胡脊梁/Jeff Gore等揭示微生物生态系统的相变(刘洋彧/李志远/戴磊点评)...

热门文章

  1. 抖音测试像哪个明星的软件,抖音中的测测你像哪位明星特效如何拍摄
  2. 迅雷正式回应搜狐诉讼,揭示网络视频行业潜规则
  3. 十三年前雷军跟我说:中国to B向toC学习,可能能走出一条道儿来
  4. jQuery css选择器大全,总有你用得到的东西。
  5. 全球及中国智能交通管理系统行业运营规划及应用前景调研报告2022-2027年
  6. 和AWS云游四海@都是为了那片碧水蓝天
  7. OpenGL学习脚印: 绘制一个三角形
  8. 变长数组-C99新特性
  9. MyBatis-Plus快速入门
  10. win10和win7系统配置faster rcnn(pytorch)