python中数组切片
在数组a中,有三个地方可以设置参数a[①:②:③]。
位置①列表初始索引,默认为0
位置②列表结束索引,默认到最后一个元素(包含最后一个元素)
位置③为步长,默认为1
a = np.arange(1, 10)
print(a) # [1 2 3 4 5 6 7 8 9]
print(a[::]) # [1 2 3 4 5 6 7 8 9]
print(a[0:-1:]) # [1 2 3 4 5 6 7 8]
print(a[0::]) # [1 2 3 4 5 6 7 8 9]
print(a[1::2]) # [2 4 6 8]
b = a[::-1]
print(b) # [9 8 7 6 5 4 3 2 1]
c = a[::-2]
print(c) # [9 7 5 3 1]
生成数据a:
a = np.arange(1, 10)
print(a) # [1 2 3 4 5 6 7 8 9]
print(a[::]) # [1 2 3 4 5 6 7 8 9]
以上两个输出一样。
print(a[0:-1:]) # [1 2 3 4 5 6 7 8]
print(a[0::]) # [1 2 3 4 5 6 7 8 9]
位置③设为2时,从下标为1的元素(即a[1]为2开始),隔一个元素,读取一个元素。
print(a[1::2]) # [2 4 6 8]
位置③为负数时,从后向前读取数组中的元素,a[::-1]相当于将数组逆序。
b = a[::-1]
print(b) # [9 8 7 6 5 4 3 2 1]
c = a[::-2]
print(c) # [9 7 5 3 1]