Numpy 组合数组的几种方法
来自 《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 组合数组的几种方法相关推荐
- 中单引号怎么转义_在JavaScript中组合字符串的4种方法
下面是在JavaScript中组合字符串的4种方法.我最喜欢的方法是使用模板字符串.为什么?因为它更具可读性,所以没有转义引号的反斜杠,没有笨拙的空格分隔符,也没有混乱的加号操作符 . const i ...
- php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析
PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...
- Java中创建数组的几种方法
Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...
- python遍历数组的两种方法及将print的内容写入文件中
python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组 colours = ["red","green","blue"] ...
- 用new创建一个二维数组,有两种方法,是等价的
//用new创建一个二维数组,有两种方法,是等价的 一: int (*p)[10] = new int[5][10]; 二: int **p ...
- 通过指针访问二维数组的三种方法
下面总结了一下通过指针访问二维数组的三种方法,里边涉及指针.指针数组.数组指针.指向指针的指针以及二维数组的应用,愿对于大家理解和使用指针有所参考和帮助. 程序如下: #include <std ...
- 知识点2:js(javascript)中检测是否为数组的两种方法【翻转数组案例】
javascript基础知识 文章目录 javascript基础知识 前言 一.翻转数组案例 二.检测数组的两种方法 1.如果传输的参数不是数组 2.instanceof 运算符 可以用来检测是否满足 ...
- 在JavaScript中组合字符串的4种方法
下面是在JavaScript中组合字符串的4种方法.我最喜欢的方法是使用模板字符串.为什么?因为它更具可读性,所以没有转义引号的反斜杠,没有笨拙的空格分隔符,也没有混乱的加号操作符
- matlab创建三维数组的三种方法
在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为"列",而对于三维数组的第三位则是习惯性的称为"页".在Matlab中将三 ...
最新文章
- android广播过滤器.*,android – BroadcastReceiver与多个过滤器或多个BroadcastReceivers?...
- CV之OD:计算机视觉之目标检测(Object Detection)方向的简介、使用方法、案例应用之详细攻略
- 沫沫金:2014最新全浏览器兼容左列固定右列自适应宽度技巧大公开
- php显示网卡信息,netwox显示网络配置信息
- eclipse mysql jndi_Java开发网 - tomcat5配置jndi的问题 (jdbc:comp is not bound in this Context)...
- 今日测试:javascript笔试最常见的一道题
- class 原生js获取父元素_JS获取节点的兄弟,父级,子级元素的方法
- 二维标准正态分布的matlab方程
- 台达a2_台达伺服ASDA-A2系列解决五轴CNC方案助力雕刻机行业换代升级
- 怎么更换电脑的默认浏览器?
- 微信公众平台深度开发JAVA版
- C#中的转义字符和Verbatim字符串
- android应用获取手机存储空间方法
- Vue.js学习笔记—shop-bus:实战:利用计算属性、指令等知识开发购物车
- 代谢组数据:QC归一化(R语言:MetNormalizer包)
- Apache ServiceComb社区常见问题解答问答精选(第一期)
- html2canvas跨域踩坑日常
- 针式打印机无电脑测试软件,针式打印机可以连接电脑但是不能打印啊 一点反应都没有 测试可以打出来...
- 编码问题(Java的IO流为什么会有字节流和字符流)
- Science | MIT胡脊梁/Jeff Gore等揭示微生物生态系统的相变(刘洋彧/李志远/戴磊点评)...