Python数据分析学习笔记三
来源:互联网 发布:淘宝二加一正品 编辑:程序博客网 时间:2024/03/29 20:36
NumPy初识(3)
5、数组分割:
跟数组组合一样,数组也可以进行分割,可以进行水平分割、垂直分割和深度分割,会用到hsplit、vsplit、dsplit以及split等,可以将数组分割成为相同大小的子数组,也可以进行指定位置的分割
水平分割(hsplit):
所谓数组分割,如果将数组比喻为一整块蛋糕的话,那么就是拿一把刀将蛋糕分割成为几部分,而水平分割中的水平,不是指的是下刀的方向,而是两刀之间的方向是水平的,也就是将数组按照列进行分割,例:
import numpy as npa = np.arange(12).reshape(3,4)print np.hsplit(a,4)
输出结果:
[ array([[0],[4],[8]]), array([[1],[5],[9]]), array([[ 2],[ 6],[10]]), array([[ 3],[ 7],[11]])]
对于三行四列的数组,按照水平分割,会将各列的数值取出做成一个数组,最终得到四个有3个长度的数组;
对于同一个数组,调用split函数并且指定axis=1,也可以做到与水平分割一致的效果。
垂直分割(vsplit):
对于垂直分割,与水平分割恰恰相反,还是按照之前蛋糕的例子,所谓垂直分割,也是指的两次下刀之间的方向按照垂直的方向,显然我们在分蛋糕的时候不能这么做,否则很容易被打,还是看例子:
import numpy as npa = np.arange(12).reshape(3,4)print np.vsplit(a,3)
输出结果:
[ array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
从结果可以很明显的看出,原本三行四列的二维数组,每一行被抽取出来做成了一个新的数组,一共得到了三个新的数组,跟原来的行数一致。
当然,同样的功能,我们还可以使用split函数实现,不过这里要设置axis=0;
深度分割(dsplit):
与深度组合一致,深度分割也是按照深度将数组进行分割,当然,首先我们要有一个三维数组:
import numpy as npa = np.arange(36).reshape(3,3,4)print aprint np.dsplit(a,4)
输出结果:
[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]] [[24 25 26 27] [28 29 30 31] [32 33 34 35]]][ array([[[ 0], [ 4], [ 8]], [[12], [16], [20]], [[24], [28], [32]]]), array([[[ 1], [ 5], [ 9]], [[13], [17], [21]], [[25], [29], [33]]]), array([[[ 2], [ 6], [10]], [[14], [18], [22]], [[26], [30], [34]]]), array([[[ 3], [ 7], [11]], [[15], [19], [23]], [[27], [31], [35]]])]
深度分割这个有一些难理解,在上例中我们创建了一个3行4列深度为3的三维数组,首先需要了解的是在reshape(3,3,4)中,第一个3代表的是数组的深度,第二个3代表的是行数,第三个4代表的是列数。然后另外需要注意的是,在dsplit函数中我们传入的是列数,这样以来就可以这样理解了:首先我们还是按照之前的惯例,沿着深度的方向进行切割,这样我们就会得到3个三行四列的二维数组,可以想成是面,然后想象将这3个二维数组摞在一起,沿着列的方向进行切割,这样我们每一次切割就会在一个面上得到了3个只有一个元素的一维数组。
在每一个面上将这个面中得到的三个一维数组放到一起,就得到了一个三行一列的二维数组,将之前得到的三个面上各自组成的二维数组组合,就得到了一个深度为3的三维数组,依此类推,我们就会得到最终的结果,4个深度为三的三维数组,每一个三维数组中有3个二维数组,每一个二维数组为三行1列。
如果实在不理解,那么可以想象成为将几片面包摞在一起进行切条。
- Python数据分析学习笔记三
- python数据分析学习笔记三
- 《利用python进行数据分析》学习笔记(三)
- python数据分析学习笔记
- Python数据分析学习笔记一
- Python数据分析学习笔记二
- Python数据分析学习笔记四
- Python数据分析学习笔记五
- Python数据分析学习笔记六
- python数据分析入门学习笔记儿
- python数据分析入门学习笔记
- python数据分析入门学习笔记儿
- python数据分析入门学习笔记儿
- python数据分析学习笔记一
- python数据分析学习笔记二
- python数据分析学习笔记六
- python数据分析入门学习笔记
- # Python数据分析学习笔记(一)
- Cocosd2d-js 实现序列化Json文件
- Java EE中filter(过滤器)的使用
- Tomcat源码分析--Connector(连接器)
- Python字符串操作
- Zookeeper web工具总结
- Python数据分析学习笔记三
- kdmctvyz
- spring boot 使用application.properties 进行外部配置
- 初步认识redis
- js原型继承机制实例详解
- Android 学习记录-UDACITY项目0反馈
- Linux进程间通信——使用共享内存
- FJNU/大二下/20160427/javascript2
- GP工具讲解