Numpy 索引切片及reshape方法小结
2016-07-21 11:49
344 查看
**
先创建一个简单的array
三维坐标对应:楼层,行号,列号
首先创建两个数组
用表格的形式比较直观
**先创建一个简单的array
b = arange(24).reshape(2,3,4)
三维坐标对应:楼层,行号,列号
方法 | 说明 | 结果 |
---|---|---|
b.shape | 获取维度/也可赋值 | (2, 3, 4) |
b[0,0,0] | 获取一个元素 | 0 |
b[:,0,0] | 获取所有楼的第一个元素 | array([ 0, 12]) |
b[0,…] | 获取第一楼的所有元素 | array([[ 0, 1, 2, 3],[ 4, 5, 6,7],[ 8, 9, 10, 11]]) |
b[0,1,::2] | 间隔选择元素 | array([4, 6]) |
b[0,:,-1] | 选取第一楼最后一列 | array([ 3, 7, 11]) |
b[0,::-1,-1] | 反向选取第一楼最后一列 | array([11, 7, 3]) |
b[::-1] | 将所有楼层取反 | array([[[12,13,14,15],[16,17,18,19],[20,21,22,23],[[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9,10,11]]]) |
b.ravel() | 展平 | array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23]) |
b.flatten() | 同上 | 同上 |
b.transpose() | 取转置 | array([[ 0, 4, 8, 12, 16, 20],[ 1, 5, 9, 13, 17, 21],[ 2, 6,10, 14, 18, 22],[ 3, 7,11, 15, 19, 23]]) |
b.T | 同上 | 同上 |
数组的组合
首先创建两个数组a = arange(9).reshape(3,3) b = 2 * a
方法 | 说明 | 结果 |
---|---|---|
hstack((a,b)) | 水平组合 | array([[ 0, 1, 2, 0, 2, 4],[ 3, 4, 5, 6, 8,10],[ 6, 7, 8,12,14,16]]) |
concatenate((a, b), axis=1) | 同上 | 同上 |
vstack((a, b)) | 垂直组合 | array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 0, 2, 4],[ 6, 8,10],[12,14,16]]) |
concatenatel((a, b), axis = 0) | 同上 | 同上 |
dstack((a,b)) | 深度组合 | array([[[0, 0],[1, 2],[2, 4]],[[3, 6],[4, 8],[5,10]],[[6,12],[7,14],[8,16]]]) |
column_stack((a,b)) | 列组合 | array([[ 0, 1, 2, 0, 2, 4],[ 3, 4, 5, 6, 8,10],[ 6, 7, 8,12,14,16]]) |
row_stack((a,b)) | 行组合 | array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 0, 2, 4],[ 6, 8,10],[12,14,16]]) |
数组的分割
c = arange(27).reshape(3, 3, 3)
方法 | 说明 | 结果 |
---|---|---|
hsplit(a,3) | 水平分割 | [array([[0],[3],[6]]),array ([[1],[4],[7]]),array ([[2],[5],[8]])] |
split(a,3,axis=1) | 同上 | 同上 |
vsplit(a,3) | 垂直分割 | [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])] |
split(a,3,axis=0) | 同上 | 同上 |
dsplit(c,3) | 深度分割 | [array([[[ 0],[ 3],[ 6]],[[ 9],[12],[15]],[[18],[24]]]),array([[[ 1],[ 4],[ 7]],[[10],…] |
数组的属性
方法 | 说明 | 结果 |
---|---|---|
b.ndim | 给出数组的维数 | 2 |
b.size | 数组元素的总个数 | 9 |
b.itemsize | 元素在内存中所占的字节数 | 4 |
b.nbytes | 整个数组所占的存储空间 | 36 |
b.resize(1,9) | 重组数组维度 | array([[ 0, 2, 4, 6, 8, 10, 12, 14, 16]]) |
b.flat | 返回numpy.flatiter对象(像遍历一维数组一样去遍历任意的多维数组) |
数组的转换
方法 | 说明 | 结果 |
---|---|---|
b.tolist() | 转换成列表 | [[0, 1], [2, 3]] |
b.astype(float) | 转换数组时指定数据类型 | array([[ 0., 1.],[ 2., 3.]]) |
相关文章推荐
- python 爬虫总结【转】
- python 除法
- Python学习笔记(三)-标准内建函数
- Python黑帽编程1.2 基于VS Code构建Python开发环境
- Python 黑帽编程大纲(变化中)
- python装饰器初探(推荐)
- 自动探测gbk编码文件并转为utf8
- Python命令行模块argparse
- python魔法方法-自定义序列详解
- Python数据预处理—归一化,标准化,正则化
- python 集合类型总结表
- 浅谈Python 字符串格式化输出(format/printf)
- Python小实验——向类传递参数
- Python之操作Excel文件
- 理解Python的With语句
- 转:Python yield 使用浅析 from IBM Developer
- 断网环境下利用pip安装Python离线安装包
- NumPy的详细教程
- Python新手学习基础之运算符——算术运算符
- The Python Tutorial - Modules