python切片的原理基础
数组和列表、元祖的切片原理:
切片:
1、表示形式:[start:end:step]
start:切片开始位置,默认为0,可以省略
end:切片截止(但不包含)位置默认为列表长度,可以省略
step:切片的步长,默认为1,可以省略。当step为负整数时,表示反向切片,这时start应该在end的右侧才行。
举例:
aList=[3,4,5,6,7,8]
print(aList[::])print(aList[::-1])
输出:[8,7,6,5,4,3]print(aList[::2])
输出:[3,5,7]print(aList[1::2])
输出:[4,6,8]print(aList[3:6])
输出:[6,7,8]print(aList[0:100])
输出:[3,4,5,6,7,8]print(aList[-15:3])
输出:[3,4,5]print(aList[3:-2])
输出:6print(aList[3:-10:-1]) #反切
输出:[6,5,4,3]
多维数组的切片:
#多维度数组的切片
#[页码,行,列],页码表示第几个数组开始,0开始可以不写
#数组的取值是x[0][0][0]表示第一个数组,第一行,第一列的数据
def testht04():x = np.arange(1,28).reshape(3,3,3)print(x)print(x[1,:,2])#切出一页print(x[1,:,:])#切出所有页的一行print(x[:,1,:])#切出0页的第一列print(x[0,:,1])
1、print(x)
[[[ 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]]]2、print(x[:,1,:])#所有页的第一行
[[ 4 5 6]
[13 14 15]
[22 23 24]]3、print(x[1,:,:])#切出一页
[[10 11 12]
[13 14 15]
[16 17 18]]4、print(x[0,:,1])#切出0页的第一列
[2 5 8]
5、print(x[:,-1,:])#切出所有页的最后一行
[[ 7 8 9]
[16 17 18]
[25 26 27]]