![7928011d4e85271eae2647095c750cfa.png](https://i-blog.csdnimg.cn/blog_migrate/c60ced31ad3a45dda3c71d3d89f287d2.jpeg)
BERT:ERNIE,咱们下个星期三第二节是啥课?
ERNIE:我康康......(`・ω・´)
>>> table[3][2]
>>> 2
>>> courseDict[2]
>>> 面向对象程序设计
ERNIE:是上 面向对象程序设计
BERT:那没事了,今晚继续炼丹︿( ̄︶ ̄)︿
假设你已经创建了一个ndarray数组,或许存放着你下个星期的课表(每个数据成员存放课程代表的编号)。对于那个摆在你眼前的ndarray数组,怎么获取下个星期三第4节课对应的编号呢?又如何知晓星期二的所有课呢?
对于第一个需求,我们需要获取的是一个组合数据类型中的一个数据成员,这种需求对应的操作称为“索引”;对于第二个需求,我们需要获取的是一个组合数据类型中的一系列数据成员作为一个子集提出,这种需求对应的操作称为“切片”。
Python对数据的索引和切片是非常重要的特征之一,np也继承了传统Python对组合数据类型的切片与索引操作。方法大同小异。
- 一维数组IDE测试
>>> a = np.array([9,8,7,6,5])
>>> a[2] # 索引,直接可以通过下标索引
7
>>> a[1 : 4 : 2] # 切片,和列表一样,格式为ls[起始编号 : 终止编号(不含) : 步长]
array([8, 6])
- 多维数组IDE测试
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> a[2,2] # 多维支持a[ax1,ax2,...,axn]的索引,这种方法比较常用
9
>>> a[2][2] # 也支持传统列表a[ax1][ax2]...[axn]的索引方式,不常用
9
>>> a[:2,:2] # 把每个坐标替换成切片操作符就可以分别对每一个维度进行切片了
array([[1, 2],
[4, 5]])
>>> a[::2,::2]
array([[1, 3],
[7, 9]])
>>> a[::-1,::-1]
array([[9, 8, 7],
[6, 5, 4],
[3, 2, 1]])