Python代码中经常会遇到 -1 这个数字,它主要有两个作用:
- 倒数第一
- 自动推断
1 倒数第一
在list, tuple, array中表示倒数第一个。
栗子1:
a01 = [3, 2]
print("a01[:-1]:", a01[:-1]) # output: 3
print("a01[0:-1]:", a01[0:-1]) # output: 3
栗子2:
import numpy as np
a=[1,2,3.4,5]
print(a)
[ 1 2 3 4 5 ]
print(a[-1]) ###取最后一个元素
[5]
print(a[:-1]) ### 除了最后一个取全部
[ 1 2 3 4 ]
print(a[::-1]) ### 取从后向前(相反)的元素
[ 5 4 3 2 1 ]
print(a[2::-1]) ### 取从下标为2的元素翻转读取
[ 3 2 1 ]
大原则:左闭(inclusive)右开(exclusive)原则
【重要】这个原则在整个Python代码中都适用。
2 自动推断
通过已知参数推断出的一个形状参数时,可以将其设置为-1.
【注意】不可以写成 a2 = a1.reshape(2, -1, -1)
会报错:“can only specify one unknown dimension”只能指定一个未知维度
栗子:
import numpy as np
a1 = np.arange(36).reshape(4,9) # a1.shape = (4, 9)
a2 = a1.reshape(2, 3, -1) # 6 = 36 / (2*3)
print("a2.shape:",a2.shape) # a2.shape = (2, 3, 6)
a3 = a1.reshape(2, -1, 6) # 3 = 36 / (2*6)
print("a3.shape:",a3.shape) # a3.shape = (2, 3, 6)
参考: