ndarray 切片中的冒号元组

Tuple of colons in ndarray slicing

在 NumPy 中 documentation 我们在开头看到一个注释:

In Python, x[(exp1, exp2, ..., expN)] is equivalent to x[exp1, exp2, ..., expN]; the latter is just syntactic sugar for the former.

为什么 x[(:,:)] 而不是 x[:,:] 呢?例如,如果需要连接切片,则必须使用 [(0,) + (slice(None),)] 而不是 [(0,) + (:,)]

正如变量名称 exp1, exp2, ... expN 所暗示的那样,这仅适用于表达式。但是,: 本身不是表达式,因此 (:,) 是一个语法错误,因为冒号符号只能用于这种意义上的索引。