一、Python 切片索引方式
索引:包括正索引和负索引,我们以具体例子为例 list=[0,1,2,3,4,5,6,7,8,9],如下图
一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。
1 | 切片操作的基本表达式:object[start_index:end_index:step]
step: 正负数均可,其绝对值大小决定了切片“步长”,正负号决定了"切片方向",正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认值为1,即从左往右以步长为1取值。注意,切取方向非常重要,决定了是否能正确理解切片。
start_index: 表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。
end_index: 表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点”。
二、Python切片具体例子
2.1 一维数组
以下示例均以一维数组arr=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]为例(结合上图更好理解):
>>>import numpy as np
>>>arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
1. 切取单个值
>>>arr[0]
>>>0
>>>arr[-1]
>>>9
2. 切取完整对象
>>>arr[:]
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>arr[::] # 从左往右
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>arr[::-1] # 从右往左,步长为1
>>>[9, 8, 7, 6, 5, 4