数组的基本运算(2)
2017-04-06 17:53
113 查看
2.2.3.4 数组的索引、切片
和列表和其它Python序列一样,一维数组可以进行索引、切片和迭代操作。>>> a= np.arange(10)** 3 #记住,操作符是对数组中逐元素处理的!#求立方 >>> a array([0, 1, 8, 27, 64, 125, 216, 343, 512, 729]) >>> a[2] 8 >>> a[2:5] array([ 8, 27, 64]) #取下标2和5之间的值,包括2,但不包括5 >>> a[:6:2]= -1000 # 等同于a[0:6:2]= -1000,从开始到第6个位置(但 不包括第6个位置),每隔一个元素将其赋值为-1000 >>> a array([-1000, 1,-1000, 27,-1000, 125, 216, 343, 512, 729]) >>> a[: :-1] # 反转a array([ 729, 512, 343, 216, 125,-1000, 27,-1000, 1,-1000]) >>>for i in a: ... print i**2, ... 1000000 1 1000000 729 1000000 15625 46656 117649 262144 531441 |
多维数组可以每个轴有一个索引。这些索引由一个逗号分割的元组给出。
>>>def f(x,y): ... return 10*x+y ... >>> b= np.fromfunction(f,(5,4),dtype=int) #fromfunction()是一个函数 >>> b array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) >>> b[2,3] 23 >>> b[0:5, 1] # 每行的第二个元素 array([ 1, 11, 21, 31, 41]) >>> b[: ,1] # 与前面的效果相同 array([ 1, 11, 21, 31, 41]) >>> b[1:3,: ] # 每列的第二和第三个元素 array([[10, 11, 12, 13], [20, 21, 22, 23]]) |
当少于提供的索引数目少于轴数时,已给出的数值按秩的顺序复制,缺失的索引则默认为是整个切片:
>>> b[-1] # 最后一行,等同于b[-1,:],-1是第一个轴,而缺失的认为是:,相当于整个切片。 array([40, 41, 42, 43]) |
点(…)代表许多产生一个完整的索引元组必要的冒号。如果x是秩为5的数组(即它有5个轴),那么:
l x[1,2,…]
等同于 x[1,2,:,:,:],
l x[…,3]
等同于 x[:,:,:,:,3]
l x[4,…,5,:]
等同 x[4,:,:,5,:]
>>> c= array( [ [[ 0, 1, 2], #三维数组(n个2维数组叠加而成) ...[ 10, 12, 13]], ... ...[[100,101,102], ...[110,112,113]]] ) >>> c.shape (2, 2, 3) >>> c[1,...] #等同于c[1,:,:]或c[1] array([[100, 101, 102], [110, 112, 113]]) >>> c[...,2] #等同于c[:,:,2] array([[ 2, 13], [102, 113]]) |
相关文章推荐
- 2015年大二上-数据结构-数组与广义表(2)-3.上三角矩阵的压缩存储及基本运算
- 2015年大二上-数据结构-数组与广义表(2)-4.下三角矩阵的压缩存储及基本运算
- NumPy学习笔记(2)--Array数组和矩阵基本运算
- 基于数组的位运算1 数组位的基本运算
- 第八周(2) 数组和广义表 对称矩阵的压缩存储及基本运算
- Java面试笔试指南(四)---基本类型、字符串、数组与运算
- 2015年大二上-数据结构-数组与广义表(2)-1.对称矩阵的压缩存储及基本运算
- JAVA基础知识思维导图:unit01_开发环境,变量,基本类型及转换,数学运算,流程控制,数组
- 数据结构 - 数组和广义表的基本运算实现
- 第八周(2) 数组和广义表 对称矩阵的压缩存储及基本运算
- 数组的基本运算(3)
- 数组和广义表的基本运算实现
- NumPy的教程--数组,基本运算
- 数据结构--数组和广义表--以行逻辑链接的顺序表为存储结构的矩阵的基本运算(求矩阵乘积)
- Python Array数组和矩阵基本运算
- 第6次数据结构上机(数组和广义表的基本运算实现)
- NumPy学习笔记(2)--Array数组和矩阵基本运算
- NumPy学习笔记(2)--Array数组和矩阵基本运算
- 数组的基本运算(1)
- matlab 数组矩阵基本运算